8086/8088寄存器组
4个16位数据寄存器:AX,BX,CX,DX
8个8位寄存器: AH,AL BH,BL CH,CL DH,DL
2个16位指针寄存器:SP,BP
2个16位变址寄存器:SI,DI
2个16位控制寄存器:IP,FLAG
4个16位段寄存器:CS,DS,ES,SS
1.通用寄存器
数据寄存器,指针寄存器和变址寄存器统称为通用寄存器。这些寄存器除了各自专门用途外,他们均可用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果。
(1)数据寄存器AX(AH,AL)BX(BH,BL)CX(CH,CL)DX(DH,DL)
主要用来保存操作数或运算结果等信息,他们的存在节省了为存取操作数所需占用总线和访问寄存器的时间
AX,AL又叫累加器
BX:基址寄存器(唯一可以作为存储器指针使用的寄存器)
CX:用于字符串操作,控制循环次数 CL:移位位数
DX:做32位乘除法,存放被除数,或者用它保留余数
(2)变址和指针寄存器
变址和指针寄存器主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移,即作为存储器指针使用。作为通用寄存器,他们可以保存16位算数逻辑运算中的操作数和运算结果,有时运算结果就是需要的存储单元地址的偏移。
SI,DI 用于串操作
SP,BP用于堆栈 (SP保存堆栈指针栈顶地址,BP堆栈数据区基址的偏移)
2.段寄存器
CS,DS,ES,SS实现寻址1M字节物理地址空间,8086/8088把1M字节地址空间分成若干逻辑段,这四个段寄存器用来保存当前使用的段值
CS:代码段 放程序
DS:数据段 放操作数据
ES:附加段
SS:堆栈段 存取数据
3.控制寄存器
(1)指令指针
IP:给出接着要执行的指令在代码段中的偏移(说白了就是永远指向下一条指令)
(2)标志寄存器
包含9个状态,主要用于反映处理器运算结果的某些特征。
运算结果标志
1.进位标志CF
反映运算是否产生进位或借位,有进/借位CF=1 没有CF=0
2.零标志ZF
反映运算结果为0.若运算结果为0,ZF=0
3.符号标志位SF
反映运算结果的符号位。SF与运算结果的最高位相同 负数为1
4.溢出标志OF
运算结果超出了8位或16位有符号数表示的范围(-128~127)(-32768~32767),否则就溢出,OF=1
5.奇偶标志PF
反映结果中的1的个数。1的个数为偶数,则PF=1,否则PF=0
6.辅助进位标志AF
在字节操作时,如果发生低半字节向高半字节进位或借位;在字操作时,如发生低字节向高字节进位或借位时AF=1
状态控制标志
1.方向标志DF
决定串操作,指针寄存器调整的方向。DF=1,串操作指令按减方式改变有关存储器指针。当DF=0时,按加方式。
2.中断允许标志IF
决定CPU是否响应外部可屏蔽中断请求,当IF=1时,CPU能够响应外部的可屏蔽中断请求;为0不响应。
3.追踪标志TF
当TF被置1后,CPU进入单步方式。是指在一条指令执行后,产生一个单步中断,主要用于调试程序。
阅读(1684) | 评论(0) | 转发(0) |