汇编——寄存器

---恢复内容开始---

1.CPU

一个典型的CPU由运算器、控制器、寄存器等器件构成,内部总线连接各种器件,在它们之间进行数据的传送。

♦运算器进行信息处理

♦寄存器进行信息存储

♦控制器控制各种器件进行工作

对于一个汇编程序员而言,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变寄存器中的内容来实现对CPU的控制。

2.通用寄存器

8086CPU的所有寄存器都是16位的,可以存放两个字节。AX,BX,CX,DX这四个寄存器通常用来存放一般性的数据,被称为通用寄存器。

为了与上代CPU中的寄存器保持兼容:

♦AX可分为AH和AL;

♦BX可分为BH和BL;

♦CX可分为CH和CL;

♦DX可分为DH和DL。

3.字在寄存器中的存储

出于对兼容性的考虑,8086CPU可以一次性处理以下两种尺寸的数据。

♦字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。

♦字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节。

4.mov和add汇编指令

在进行数据传送或运算时,要注意指令的两个操作对象的位数应的是一致的,例如:

mov ax,bx

mov al,18H

add ax,20000

而:

mov ax,bl

mov al,2000

等都是错误的指令

5.8086CPU给出物理地址的方法

8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。

8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

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

更一般地说,8086CPU的这种寻址功能是“基础地址+偏移地址=物理地址”寻址模式的一种具体实现方案。8086CPU中,段地址*16课看作是基础地址。

6.CS和IP

CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系。

在8086PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M*16+N单元开始,读取一条指令并执行。

修改CS、IP的指令

jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将从2AE33H处读取指令

jmp 3:0B16,执行后:CS=0003H,IP=0B16H,CPU将从00B46H处读取指令

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

jmp ax,在含义上好似:mov IP,ax

 

 

 

 

 

 

 

 

 

 

---恢复内容结束---

posted @ 2018-10-19 13:10  天音九十八  阅读(244)  评论(0)    收藏  举报