您的位置:首页 > 其它

汇编语言学习笔记第二章 寄存器

2016-12-30 18:06 316 查看
8086/8088CPU的寄存器有4类:

数据寄存器:AX、BX、CX、DX  (存放一般性的数据,又称通用寄存器)

指针及变址寄存器:SP、BP、SI、DI

段寄存器:CS、DS、SS和ES

控制寄存器:IP和Flags

AX (Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作;

BX称为基地址寄存器(Base Register),可作通用寄存器用,在计算存储器地址时,常用作基址存储器;

CX称为计数寄存器(Count Register),常用作循环计数器;在位操作中,要用CL来指明移位的位数;

DX称为数据寄存器(Data Register)。在进行双字的乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。

CS:代码段寄存器

DS:数据段寄存器

SS:堆栈段寄存器

ES:附加段寄存器

IP:指令指针寄存器

CS和IP就指示了CPU当前要读取指令的地址

几条汇编指令

  在写一条汇编指令或一个寄存器的名称时不区分大小写.

物理地址

  CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址.

16位结构的CPU

  运算器一次最多可以处理16位的数据;

  寄存器的最大宽度为16位;

  寄存器和运算器之间的通路为16位.

8086CPU给出物理地址的方法

  地址加法器采用“物理地址 = 段地址 * 16 + 偏移地址”的方法合成物理地址

段的概念

  一个段的最大长度位64KB

CS和IP

8086CPU的工作过程可以简要描述如下:

1) 从CS:IP指向的内存单元处读取指令,读取的指令进入指令缓冲器;

2) IP=IP+所读取指令的长度,从而指向下一条指令;

3) 执行指令,转到步骤1,重复这个过程.

修改CS、IP的指令

“jmp 段地址 : 偏移地址”指令的功能为:  用指令中给出的段地址修改CS,偏移地址修改IP.

“jmp 某一合法寄存器”: 用寄存器的值修改IP.

本文链接地址: http://www.dbgpro.com/archives/394.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: