8088/8086的寄存器结构(微机原理笔记)
Posted 你要永远相信光z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8088/8086的寄存器结构(微机原理笔记)相关的知识,希望对你有一定的参考价值。
8088/8086的寄存器结构
下图是8088/8086的“可编程”寄存器结构图。8088/8086的寄存器组有8个通用寄存器、4个段寄存器、1个标志寄存器和1个指令指针寄存器,均为16位。除通用寄存器外,其他寄存器往往功能单一,可被称为专用寄存器。
通用寄存器
数据寄存器
8088有4个16位数据寄存器:AX、BX、CX、DX它们还可以分为两个独立的8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL。对某个8位寄存器的操作,并不影响对应8位寄存器的数据。数据寄存器是通用的,用来存放计算的结果和操作数,但每个寄存器又有它们各自常用的用法,也就因此有自己的名字:
- AX累加器(Accumulator),使用频度最高,用于算术运算、逻辑运算以及与外设传送信息等。
- BX基址寄存器(Base Address Register),常用来存放存储器地址。
- CX计数器(Counter),作为循环和串操作等指令中的隐含计数器。
- DX数据寄存器(Data Register),常用来存放双字长数据的高16位或存放外设端口地址。
变址寄存器
16位变址寄存器SI和DI,常用于存储器变址寻址方式时提供地址。
-
源地址寄存器SI: 数据段寄存器DS与SI联用寻址数据段中的源操作数,同时SI能够自动增量或减量。数据段是默认的存放数据的存储区域
-
目的寄存器DI: 附加段寄存器ES与DI联用寻址附加段中的目的操作数,同时DI能够自动增量或减量。附加段也是存放数据的区域,但附加段主要用于串操作类指令中。
指针寄存器
16位指针寄存器BP和SP,用于指向堆栈段中的数据单元。
堆栈简介: 堆栈(Stack)是主存中一个特殊的区域,它采用先进后出(First In Last Out,FILO)或后进先出(Last In First Out,LIFO)操作方式。在8088形成的微机系统中,堆栈区域设置在主存中,被称为堆栈段。
- 堆栈指针寄存器SP:堆栈段寄存器SS指示堆栈段的开始位置,堆栈指针寄存器SP指示堆栈顶部相对于开始的偏移位置。堆栈段数据的压入(Push)和弹出(Pop)都是相对于堆栈顶进行的,每次数据操作SP还要减2或者加2
- 基址指针寄存器BP: 默认表示堆栈段中的基地址,采用随机存取方式读写堆栈段中的数据,主要在子程序中,利用堆栈传递参数。
专用寄存器
指令指针寄存器
程序代码被存放在存储器的代码段中。代码段寄存器CS指示代码段的开始位置,而16位指令指针寄存器IP用来指示当前指令在代码段的偏移位置。微处理器利用CS和IP取得要执行的指令,然后修改IP内容,使之指向下一条指令的存储器地址。也就是说,微处理器通过CS和IP寄存器来控制指令序列的执行流程。
标志寄存器
标志(Flag)用于反映指令执行结果或控制指令执行形式。8088微处理器中各种常用的标志形成了一个16位的标志寄存器FLAGS,也被称为程序状态字寄存器PSW。标志寄存器中的各种标志分成了两类:6个状态标志和3个控制标志,如下图所示。
状态标记
状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置其状态标志,也有些指令不影响标志。除溢出标志OF外,其他的状态标志都在标志寄存器的低字节。
- CF——进位标志(Carry Flag)。当加减运算结果的最高有效位有进位(加法)或借位(减法)时.进位标志置1.即CF=1:否则CF=0.
- ZF——零标志(Zero Flag)。若运算结果为0,则ZF=1;否则ZF=0。
- SF——符号标志(Sign Flag)。运算结果的最高有效位就是符号标志的状态。即运算结果最高位为1.则SF=1:否则SF=0.
- PF——奇偶标志(Parity Flag)。当运算结果最低字节中“1”的个数为零或偶数时,PF=1﹔否则PF=0。注意,PF标志仅反映最低8位中“1”的个数是偶数或奇数,即使是进行16位字操作也如此。
- OF——溢出标志(Overflow Flag)。若算术运算的结果有溢出,则OF=1,否则OF=0。
- AF—辅助进位标志(Auxiliary Carry Flag)。若运算时D。位(低半字节)有进位或借位,则AF=1,否则AF=0。这个标志主要由处理器内部用于十进制算术运算,用户一般不必关心。
控制标志
控制标志由程序根据需要用指令来设置,用于控制处理器执行指令的方式。
- DF——方向标志(Direction Flag)。该标志用于串操作指令中,以控制地址的变化方向。如果设置DF=0,每次串操作后的存储器地址就自动增加;若DF=1,每次串操作后的存储器地址就自动减少。
- IF——中断允许标志(Interrupt-enable Flag)。该标志用于控制外部可屏蔽中断是否可以被处理器响应。若设置IF=1,则允许中断;若设置IF=0,则禁止中断。
- TF——陷阱标志(Trap Flag),也常称为单步标志。该标志用于控制处理器是否进入单步操作方式。若设置TF=1,处理器单步执行指令,即处理器在每条指令执行结束时,产生一个编号为1的内部中断。这样可以方便地对程序进行逐条指令的调试。这种内部中断称为单步中断,这种逐条指令调试程序的方法就是单步调试。若设置TF=0,处理器正常工作。
以上是关于8088/8086的寄存器结构(微机原理笔记)的主要内容,如果未能解决你的问题,请参考以下文章