寄存器及其对标志寄存器的影响
8086CPU中共有14个寄存器,并且所有的寄存器都是16位的。分为低8位和高8位。
这16个寄存器分别为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。
一、通用寄存器
AX |
累加器/Accumulator |
AH |
AH |
||
BX |
基址寄存器/Base Address Register |
BH |
BL |
||
CX |
计数器/Counter |
CH |
CL |
||
DX |
数据寄存器/Date |
DH |
DL |
二、段寄存器
CS |
代码段寄存器(Code Segment) |
DS |
数据段寄存器(Data Segment) |
ES |
附加段寄存器(Extra Segment) |
FS |
附加段寄存器(Extra Segment) |
GS |
附加段寄存器(Extra Segment) |
SS |
堆栈寄存器(Stack Segment) |
变址寄存器
中文名 |
|
|---|---|
SI |
源索引寄存器/Source Index |
DI |
目标索引寄存器/Destination Index |
指针寄存器
== SP BP ==
指令寄存器
IP
==
标志寄存器
位置 |
名字 |
=0 |
=1 |
|
|---|---|---|---|---|
0 |
C F |
进位 标志/Carry Flag |
处理 器进行算术操作时,最高 位有向前进位或借位,则 CF=1; |
处理器 进行算术操作时,最高位 没有向前进位或借位,则 CF=0 |
1 |
||||
2 |
P F |
奇偶 标志/Parity Flag |
计算结果出来后, 低八位有奇数个为1的比特 |
计算结果出来后, 低八位有偶数个为1的比特 |
3 |
||||
4 |
A F |
辅 助进位标志 /Auxiliary Carry Flag |
||
5 |
||||
6 |
Z F |
(Zero Fl ag),零标志 |
若计算结 果不为0,该位被置为0; |
若计算 结果为0,该位被置为1; |
7 |
S F |
符 号标志/Sign Flag |
||
8 |
T F |
跟踪 标志/Trace Flag |
||
9 |
I F |
中断标志 /Interrupt Flag |
||
1 0 |
D F |
方向标志 /Direction Flag |
cld正向传送 |
std反向传送 |
1 1 |
O F |
溢出标 志/Overflow Flag |
假定你进行 的是有符号数运算,如果 结果没有超出了目标操作 数所能容纳的范围,OF=0 |
假定你 进行的是有符号数运算, 如果结果超出了目标操作 数所能容纳的范围,OF=1 |
1 2 1 5 |
留 空 |
寄存器的作用
CS:IP:CPU将CS:IP指向的内容作为指令
BX、SI、DI、BP:仅且仅能使用这四位寄存器用来提供偏移地址
BP 作为偏移地址时默认的段寄存器是SS
BX、SI、DI作为偏移地址时的默认段寄存器是DS