汇编杂谈-8086寄存器

8086 寄存器

寄存器 rax,eax,ax,ah,al 关系

1
2
3
4
5
|63..32|31..16|15-8|7-0|
			   |AH.|AL.|
			   |AX.....|
	   |EAX............|
|RAX...................|

寄存器种类和用途

寄存器 描述
AX 累加数据结果
BX 数据段数据指针
CX 字符串和循环计数器
DX I/O 指针
SI 源数据指针
DI 目的数据指针
SP 栈指针
BP 栈数据指针
CS 代码段寄存器
DS 数据段寄存器
SS 栈段寄存器
ES 额外的寄存器
IP cs:ip 组合用于下一条指令地址
EFLAGS 存储状态和控制信息

EFLAGS 寄存器

EFLAGS 寄存器是一个 32 位的寄存器,用于存储程序的状态和控制信息。EFLAGS 寄存器的各位表示的意思如下¹²:

  • CF (bit 0) [Carry flag] 进位标志,表示无符号数运算是否产生进位或借位。
  • PF (bit 2) [Parity flag] 奇偶标志,表示运算结果的最低有效字节中1的个数是否为偶数。
  • AF (bit 4) [Adjust flag] 辅助进位标志,表示运算结果的第3位是否产生进位或借位,用于BCD运算。
  • ZF (bit 6) [Zero flag] 零标志,表示运算结果是否为0。
  • SF (bit 7) [Sign flag] 符号标志,表示运算结果的符号位,0为正,1为负。
  • TF (bit 8) [Trap flag] 陷阱标志,表示是否开启单步调试模式。
  • IF (bit 9) [Interrupt enable flag] 中断允许标志,表示是否允许外部中断。
  • DF (bit 10) [Direction flag] 方向标志,表示串操作指令的处理方向,0为递增,1为递减。
  • OF (bit 11) [Overflow flag] 溢出标志,表示有符号数运算是否产生溢出。
  • IOPL (bit 12 and 13) [I/O privilege level field] I/O特权级字段,表示当前任务的I/O特权级,用于访问I/O端口。
  • NT (bit 14) [Nested task flag] 嵌套任务标志,表示当前任务是否是一个嵌套调用的任务。
  • RF (bit 16) [Resume flag] 恢复标志,表示是否忽略调试异常。
  • VM (bit 17) [Virtual-8086 mode flag] 虚拟8086模式标志,表示是否处于虚拟8086模式下。
  • AC (bit 18) [Alignment check flag] 对齐检查标志,表示是否开启对齐检查功能。
  • VIF (bit 19) [Virtual interrupt flag] 虚拟中断标志,表示虚拟8086模式下的中断允许状态。
  • VIP (bit 20) [Virtual interrupt pending flag] 虚拟中断挂起标志,表示虚拟8086模式下是否有中断请求等待处理。
  • ID (bit 21) [ID flag] ID标志,表示CPU是否支持CPUID指令。

源: 与必应的对话, 2023/5/5 (1) 详解EFLAGS寄存器(标志寄存器)_李耀辉@1的博客-CSDN博客. . (2) x86—EFLAGS寄存器详解_随心随意随缘的博客-CSDN博客. . (3) x86—EFLAGS寄存器详解【转载】 - 阿阿阿怪 - 博客园

0%