知道有点老,但对电脑的的学习有好处,可以看看。
8086寄存器和标志位如下:
通用寄存器
| 高8位 | 低8位 | 寄存器为16位,可按字节(8位)操作
7 0 7 0
AX | AH | AL | 累加器
BX | BH | BL | 基址寄存器
CX | CH | CL | 计数寄存器
DX | DH | DL | 数据寄存器
段寄存器
15 16位 0
CS | | 代码段寄存器
DS | | 数据段寄存器
SS | | 堆栈段寄存器
ES | | 附加段寄存器
指针和变址寄存器
15 16位 0
SP | | 堆栈指针
BP | | 基址指针
SI | | 源变址寄存器
DI | | 目的变址寄存器
指令指针和标志位
15 11 8 7 0
IP | | 指令指针
F | |O|D|I|T|S|Z| |A| |P| |C| 标志位
1.通用寄存器
8086有四个通寄存器,AX,BX,CX,DX。他们可以作为一个16位寄存器用,也可以作为两个8位寄存器用,当作为8位寄存器用时低8位和高8位为别有自己的名称:(低8位)AL,BL,CL,DL和(高8位)AH,BH,CH,DH。
通常,通用寄存器的内容既可以作为算术逻辑运算的源操作数,也可用作它们的目的操作数。但有些指令规定了某个通用寄存器的专门用法。如,串操作指令将CX寄存器用作计数器,记录字串的字数目,而AX,BX和DX寄存器都不用于这个目的。CX的这种特殊用途使得它被命名为计数寄存器,而AX,BX和DX寄存器又可以分别称为累加器,基址和数据寄存器,下面列出了8086通用寄存器的特殊用法。
AX:字乘法、字除法、字I/O
AL:字节乘法、字节除法、字节I/O
AH:字节乘法、字节除法
BX:转换
CX:串操作、循环
CL:可变移位和循环移位
DX:字乘法、字除法、间接寻址I/O
SP:堆栈操作
SI:串操作
DI:串操作
2.指针和变址寄存器
8086由SP,BP,SI和DI组成,都为16为寄存器。这组寄存器通常存放的内容是在某个段的偏移地址。
3.段寄存器
含意 隐含识别的现行段
CS:代码段寄存器 现行代码段
IS:数据段寄存器 现行数据段
SS:堆栈段寄存器 现行堆栈段
ES:附加段寄存器 现行附加段
偏移量是由一个指针寄存器的内容计算得来的,在这种情况下,使用现行堆栈段;
操作数是一条串操作指令的目的操作数,在这种情况下,则使用现行附加段。
4.指令指针
16位的指令指针(IP),它由8086的总线接口部件BIU修改,以至它总是包含下一条要取的指令在现行代码段中的偏移量,即IP总是指向下一条待取的指令。在程序顺序执行期间,IP包含由BIU将要取的指令的偏移量,但每当将IP压入堆栈保存时,8086首先自动调整IP内容,以使压入堆栈的IP的内容是下一条将要执行的指令地址的偏移量。程序不能直接访问IP,但指令能够引起它的内容的改变以及把它的内容压入堆栈或从堆栈中恢复。
5.标志寄存器
8086有9个标志位,用来记录微处理器运行状态信息(状态村志),或者控制微处理器操作(控制标志)。状态标志通常是在算术或逻辑运算指令执行之后设置。
状态标志是:
进位标志位(CF):指出该指令是否在最高信产生一个过们或借位。
辅助进们标志位(AF):反映上次运算是否在低4位产生了一个进位或借位。
溢出标志位(OF):表示指令的执行是否产生一个超出范围的带符号的结果。
零标志位(ZF):反映指令的执行是否产生一个零的结果。
符号标志位(SF):指出该指令的执行是否产生一个负的结果。
奇偶标志位(PF):表示指令运算结果的低8位“1”的个数是否为偶数。
控制标志是:
方向标志位(DF):控制串操作对字符串操作方向。
中断标志位(TF):表示CPU是否能够响应外部可屏蔽中断请求。
跟踪标志(TF):为方便程序的调试,使处理器的执行进入单步方式而设置的控制标志位。
下面给出了这些标志位寄存器。
标志寄存器
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
| | | | | OF | DF | IF | TF | SF | ZF | | AF | | PF | | CF |