8086寄存器组

数据寄存器

数据寄存器:包括AX、BX、CX、DX四个16位的通用寄存器。
AX(Accumulator): 作为累加器用,算术运算 的主要寄存器
BX(Base): 基址寄存器
CX(Count): 计数器
DX(Data): 双精度运算时与AX一起存放双操作数。其中DX存放高字(高16位),AX存放低字(低16位)。

数据寄存器中每个寄存器又可以分为2个8位的寄存器。分别为AH、AL,BH、BL,CH、CL,DH、DL。AH为高字节(高8位)寄存器、AL为低字节(低8位)寄存器。

地址寄存器

SI(Source Index) 源变址寄存器,可用于存放源缓冲区的偏移地址。
DI(Destination Index) 目的变址寄存器,可用于存放目的缓冲区的偏移地址。
SP(Stack Pointer) 堆栈指针寄存器,用于指出堆栈区的栈顶的偏移地址。
BP(Base Pointer) 基址指针寄存器,用于指出堆栈区的某个单元的偏移地址。

段寄存器

CS (Code Segment) 代码段寄存器,用于指出存放程序的代码段的段地址。
DS (Data Segment) 数据段寄存器,用于指出存放数据的数据段的段地址。
ES (Extra Segment) 附加段寄存器,用于指出存放附加数据的附加段的段地址。
SS (Stack Segment) 堆栈段寄存器,用于指出堆栈区的堆栈段的段地址。

控制寄存器

IP (Instruction Pointer)指令指针寄存器:用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单元的偏移地址。
FLAGS标志寄存器:其中的某位代表CPU的一个标志,表示CPU的某种执行状态。

标志寄存器

标志位 标志 值为1 值为0
进位标志 CF(Carry Flag) CY CN
符号标志 SF(Symbol Flag) NG PL
零标志 ZF(Zero Flag) ZR NZ
溢出标志 OF(Overflow Flag) OV NV
辅助进位标志 AF(Assistant Flag) AC NA
奇偶标志 PF(Parity Flag) PE PO
方向标志 DF(Direction Flag) DN UP
中断标志 IF ( Interrupt Flag) EI DI

地址

物理地址=段地址×10H+偏移地址

8086汇编语言中把逻辑段分为四种类型,分别是代码段、数据段、附加段和堆栈段。
各段的逻辑地址对应表:

段名 段寄存器 偏移地址
代码段 CS IP
数据段 DS BX、SI、DI等地址寄存器
附加段 ES BX、SI、DI等地址寄存器
堆栈段 SS SP或BP