寄存器及其对标志寄存器的影响
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 | |
C F | 进位 标志/Carry Flag | 处理 器进行算术操作时,最高 位有向前进位或借位,则 CF=1; | 处理器 进行算术操作时,最高位 没有向前进位或借位,则 CF=0 |
P F | 奇偶 标志/Parity Flag | 计算结果出来后, 低八位有奇数个为1的比特 | 计算结果出来后, 低八位有偶数个为1的比特 |
A F | 辅 助进位标志 /Auxiliary Carry Flag | ||
Z F | (Zero Fl ag),零标志 | 若计算结 果不为0,该位被置为0; | 若计算 结果为0,该位被置为1; |
S F | 符 号标志/Sign Flag | ||
T F | 跟踪 标志/Trace Flag | ||
I F | 中断标志 /Interrupt Flag | ||
D F | 方向标志 /Direction Flag | cld 正向传送 | std 反向传送 |
O F | 溢出标 志/Overflow Flag | 假定你进行 的是有符号数运算,如果 结果没有超出了目标操作 数所能容纳的范围,OF=0 | 假定你 进行的是有符号数运算, 如果结果超出了目标操作 数所能容纳的范围,OF=1 |
留 空 |
寄存器的作用
CS:IP :CPU将CS:IP指向的内容作为指令
BX、SI、DI、BP :仅且仅能使用这四位寄存器用来提供偏移地址
BP 作为偏移地址时默认的段寄存器是SS
BX、SI、DI 作为偏移地址时的默认段寄存器是DS