首页 > 代码库 > 汇编语言之80X86寄存器组相关知识
汇编语言之80X86寄存器组相关知识
80X86寄存器组图
标志寄存器相关说明
运算结果特征标志(用于记录程序中运行结果的特征)
CF(Carry Flag):进位标志,记录运算结果的最高位向前产生的进位或借位。可用于检测无符号数二进制加减法运算时是否发生溢出(溢出时CF=1)。
PF(Parity Flag):奇偶标志,记录运算结果最低8位中含1的个数是奇还是偶。可用于检测数据传送过程中是否发生错误。
AF(Auxiliary carry):辅助进位标志,记录运算结果最低4位向前产生的进位或借位。只有在执行十进制运算指令时才关心此位。
ZF(Zero Flag):零标志,记录运算结果是否为0。结果为0则置1,否则清0。
SF(Sign Flag):符号标志,记录运算结果的符号。结果为负则置1,否则清0。
OF(Overflow Flag):溢出标志,记录运算结果是否超出了机器所能表示的范围。可用于检测带符号数运算时是否发生溢出(溢出时OF=1)。
控制标志(用于控制处理器的操作)
IF(Interrupt Flag):中断允许标志。IF的控制只对外部可屏蔽中断请求(INTR)起作用。当IF=1时允许CPU响应INTR。
DF(Direction Flag):方向标志。专服务于字符串操作指令,当DF位为1时,每次操作后使变址寄存器SI和DI减小,这样就使串处理从高地址向低地址方向处理。当DF位为0时,则使SI和DI增大。
TF(Trap Flag):陷阱标志,用于程序调试。当TF=1 时,CPU处于单步方式;当TF=0时,CPU处于连续方式。
IOPL(I/O Privilege Level):特权标志,占D13和D12两位。在保护模式下,用于控制对I/O地址空间的访问。只对80286以上CPU有效。
ID(Identification):标识标志,若ID=1,则表示Pentium支持CPUID指令。只对Pentium以上CPU有效。
在调试程序DEBUG中提供了测试标志位的手段,它用符号表示某些标志位的值,见下表。
标志名 | 标志为1 | 标志为0 |
OF溢出(是/否) | OV | NV |
DF方向(减量/增量) | DN | UP |
IF中断(允许/关闭) | EI | DI |
SF符号(负/正) | NG | PL |
ZF零(是/否) | ZR | NZ |
AF辅助进位(是/否) | AC | NA |
PF奇偶(偶/奇) | PE | PO |
CF进位(是/否) | CY | NC |
注:
- 对于字、双字、四字数据类型,访问时只需给出最低单元的地址号即可。按照Intel公司的习惯,其低地址中存放低位字节数据,高地址中存放高位字节数据 -- “逆序存放”。
- 一个内存单元地址要用段基地址和偏移量两个逻辑地址来描述,表示为段基址:偏移量。(16d*段地址+偏移地址=物理地址)
汇编语言之80X86寄存器组相关知识