汇编——寄存器
---恢复内容开始---
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
---恢复内容结束---