3138086CPU的寄存器结构 8086CPU中可供编程使用的有14个16位寄存器,按其用 途可分为3类:通用寄存器、段寄存器、指针和标志寄存器, 如所示。 AH AL 累加器 BH BL 基址寄存器 CH 计数寄存器 数据寄存器 DH DL 数据寄存器 通用寄存器 SP 堆栈指针寄存器 BP 基址指针寄存器地址指针和 源变址寄存器 变址寄存器 目的变址寄存器 IP FLAGS 指令指针寄存器控制寄存器 标志寄存器 代码段寄存器 DS 数据段寄存器 堆栈段寄存器「段寄存器 ES 附加段寄存器 8086CPU内部寄存器结构
6 3.1.3 8086CPU的寄存器结构 8086CPU中可供编程使用的有14个16位寄存器,按其用 途可分为3类:通用寄存器、段寄存器、指针和标志寄存器, 如所示。 AH AL 累加器 BH BL CL DH DL CH SP SI DI IP FLAGS CS DS SS ES BP 基址寄存器 计数寄存器 数据寄存器 堆栈指针寄存器 基址指针寄存器 源变址寄存器 目的变址寄存器 指令指针寄存器 标志寄存器 代码段寄存器 段寄存器 附加段寄存器 堆栈段寄存器 数据寄存器 地址指针和 变址寄存器 控制寄存器 通用寄存器 数据段寄存器 8086CPU内部寄存器结构
通用寄存器 通用寄存器分为数据寄存器与指针和变址寄存器两组 数据寄存器包括4个16位的寄存器AX、BX、CX和DX, 般用来存放16位数据,故称为数据寄存器。其中的每一个又 可根据需要将高8位和低8位分成独立的两个8位寄存器来使 用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8 位数据,它们均可独立寻址、独立使用。 指针和变址寄存器包括指针寄存器SP、BP和变址寄存器 SI、DI,都是16位寄存器, 般用来存放地址的偏移量 这8个16位通用寄存器都具有通用性,从而提高了指令 系统的灵活性。但在有些指令中,这些通用寄存器还各自有 特定的用法,见下表
7 1.通用寄存器 通用寄存器分为数据寄存器与指针和变址寄存器两组。 数据寄存器包括4个16位的寄存器AX、BX、CX和DX,一 般用来存放16位数据,故称为数据寄存器。其中的每一个又 可根据需要将高8位和低8位分成独立的两个8位寄存器来使 用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8 位数据,它们均可独立寻址、独立使用。 指针和变址寄存器包括指针寄存器SP、BP和变址寄存器 SI、DI,都是16位寄存器, ,一般用来存放地址的偏移量。 这8个16位通用寄存器都具有通用性,从而提高了指令 系统的灵活性。但在有些指令中,这些通用寄存器还各自有 特定的用法 ,见下表
表3.1通用寄存器的特定用法 寄存 操作 寄存器 操作 AX字乘,字除,字IO 变量移位,循 环移位 AL 字节乘,字节除,字节IO,查表转 字乘,字除, 换,十进制运算 DX 间接I/O AH字节乘,字节除 SP 堆栈操作 BX查表转换 SI 数据串操作指 CⅩ数据串操作指令,循环指令 数据串操作指 令
8 表3.1 通用寄存器的特定用法 寄存 器 操作 寄存器 操作 AX 字乘,字除,字I/O CL 变量移位,循 环移位 AL 字节乘,字节除,字节I/O,查表转 换,十进制运算 DX 字乘,字除, 间接I/O AH 字节乘,字节除 SP 堆栈操作 BX 查表转换 SI 数据串操作指 令 CX 数据串操作指令,循环指令 DI 数据串操作指 令
2.控制寄存器 指令指针寄存器P:是一个6位的寄存器,存放EU要热 行的下一条指令的偏移地址,用以控制程序中指令的执行 顺序,实现对代码段指令的跟踪。 标志寄存器E:是一个16位的寄存器,共9个标志,其中 个用作状态标志,3个用作控制标志 o (1)状态标志:状态标志用来反映EU执行算术和逻辑运算 以后的结果特征。 CF:进位标志;P:奇偶标志:AF:辅助进位标念y ZF:零标志:SF:符号标志:OF:溢出标志
9 2.控制寄存器 指令指针寄存器IP :是一个16位的寄存器,存放EU要执 行的下一条指令的偏移地址,用以控制程序中指令的执行 顺序,实现对代码段指令的跟踪 。 标志寄存器F :是一个16位的寄存器,共9个标志,其中6 个用作状态标志,3个用作控制标志。 (1)状态标志:状态标志用来反映EU执行算术和逻辑运算 以后的结果特征。 CF:进位标志 ;PF:奇偶标志 ;AF:辅助进位标志 ZF:零标志 ;SF:符号标志 ;OF:溢出标志
2)控制标志:控制标志是用来控制CPU的工作方式或工 作状态。 TF:陷阱标志或单步操作标志:IF:中断允许标志 DF:方向标志 3.段寄存器 8086CPU共有4个16位的段寄存器,用来存放每一个逻 辑段的段起始地址 1)代码段寄存器CS (2)数据段寄存器DS (3)堆栈段寄存器SS (4)附加段寄存器ES
10 (2)控制标志 :控制标志是用来控制CPU的工作方式或工 作状态 。 TF:陷阱标志或单步操作标志 :IF:中断允许标志 DF:方向标志 3.段寄存器 8086CPU共有4个16位的段寄存器,用来存放每一个逻 辑段的段起始地址。 (1)代码段寄存器CS (2)数据段寄存器DS (3)堆栈段寄存器SS (4)附加段寄存器ES