CPU内部寄存器组与内部数据存取规则

CPU内部寄存器组

Intel 8086/8088 CPU内部共有14个16位寄存器,根据其作用可以分为通用寄存器,段寄存器,指令指针和标志寄存器。

1、 通用寄存器

特点:通用。

特殊用法:

在循环指令(loop)中,循环次数必须放在CX中;

       两个字节相乘的指令中,其中一个数必须放入AL中,而结果积隐含在AX中。

       习惯上把CX叫做计数器,把AX叫做累加器。

1)数据寄存器

AX、BX、CX、DX(16位寄存器)

2)间址寄存器

间址寄存器由2个及至寄存器BX、BP和2个变址寄存器SI、DI构成。(16位寄存器)

3)指针寄存器

指针寄存器包含 堆栈指针SP 和 基指针BP。

2、 段寄存器

一个存储单元与它所在段的段基址之间的距离(以字节数记)叫该存储单元的偏移地址,也较偏移量。

用CS、DS、ES、SS段寄存器指明的段是当前段。

       CS:指向存放有指令代码的代码段;

       SS:指向堆栈段;

       DS和ES:指向存放数据和工作单元的数据段。

3、 指令指针IP

编制的程序不能直接访问IP,但是有些特定指令能够自动修改IP内容,如:转移指令JMP,JNE等的执行。

4、 标志寄存器

8086/8088CPU设置了一个16位标志寄存器,其中定义了9个标志位。

6个标志位作为状态标志(CF、PF、AF、ZF、SF、OF)

3个标志位作为控制标志(TF、IF、DF)

1)     进位标志(Carry Flag,CF):产生进位“1”,不产生进位“0”

2)     奇偶标志(Parity Flag,PF):操作结果低八位“1”的个数为偶数个“1”,不然“0”

3)     辅助进位标志(Auxiliary Carry Flag,AF):低半字节向高半字节产生进位或借位”1”

4)     零标志(Zero Flag,ZF):运算结果各位全为“0”时为“1”

5)     符号标志(Sign Flag,SF):运算结果为”1”时SF置”1”

6)     溢出标志(Overflow Flag,OF):运算结果超出补码范围时置”1”

7)     单步标志位(或跟踪位)(Trace Flag):TF=1时,执行一条指令就停下来(产生单步中断)

8)     中断允许位(Interrupt-enable Flag,IF):当IF=1时,允许响应屏蔽中断。

9)     方向位(Direction Flag,DF)DF=0时,自动地使变址寄存器(SI和DI)递增;DF=1时,自动地使变址寄存器递减

逻辑地址的表示“段基址:偏移量”

20位物理地址=段基址<<4 +偏移地址

内部数据存取规则:一个字须存放在2个相邻存储单元中,字数据的低位字节存储在低地址的存储单元中,高位字节存储在高地址的存储单元中,其字地址是两个存储单元中较低的一个。

 

你可能感兴趣的:(汇编语言)