首页 > 代码库 > 汇编语言之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

注:

  1. 对于字、双字、四字数据类型,访问时只需给出最低单元的地址号即可。按照Intel公司的习惯,其低地址中存放低位字节数据,高地址中存放高位字节数据 -- “逆序存放”。
  2. 一个内存单元地址要用段基地址和偏移量两个逻辑地址来描述,表示为段基址:偏移量。(16d*段地址+偏移地址=物理地址)

 

汇编语言之80X86寄存器组相关知识