第二章知识梳理
第二章 寄存器
1、AX、BX、CX、DX通常用来存放一般性数据,被称为通用寄存器。为了保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。
AX可以分为AH和AL;BX可以分为BH和BL;CX可以分为CH和CL;DX可以分为DH和DL。
2、8086cpu所有的寄存器都是16位的,可以存放两个字节。用十六进制来表示数据可以直观的看出这个数据是由哪些8位数据构成的。每两位对应一个八进制。
3、汇编指令不区分大小写。
4、cpu访问内存单元时要给出内存单元的地址。我们将这个唯一的地址称为物理地址。所有的内存单元构成的存储空间是一个一维的线性空间。
概括的讲,16位结构描述了一个cpu具有以下几个方面的特征:(1)运算器一次最多可以处理16位的数据。(2)通用寄存器的最大宽度为16位。(3)寄存器和运算器之间的通路是16位的。
8086cpu有20位地址总线,可传送20位地址,寻址能力位1MB。8086cpu内部为16位结构,它只能传送16位的地址,表现出的寻址能力只有64KB。8086cpu采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。
5、8086cpu读写内存时:(1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址。(2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件。(3)地址加法器将两个16位地址合并成一个20位的地址。
6、地址加法器合成物理地址的方法:物理地址=段地址*16+偏移地址。“段地址*16”有一个更为常用的说法就是数据左移4位(二进制位)。基础地址+偏移地址=物理地址。偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB。
7、段寄存器就是提供段地址的。
8、8086cpu有四个段寄存器:CS、DS、SS、ES。当8086cpu要访问内存时,由这四个段寄存器提供内存单元的段地址。
9、CS和IP是8086cpu中最关键的寄存器,它们指示了cpu当前要读取指令的地址。CS为代码段寄存器;IP为指令指针寄存器。
10、8086pc工作过程的简要描述:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器。
(2)IP=IP+所读取指令的长度,从而指向下一条指令。
执行指令。转到步骤(1),重复这个过程。
11、8086cpu工作过程的简要描述:在8086cpu加电启动或复位后(即cpu刚开始工作时),CS和IP被设置为CS=FFFFH,IP=0000H。即在8086pc机刚启动时,cpu从内存FFFF0H单元中读取指令执行。FFFF0H单元中的指令是8086pc机开机后执行的第一条指令。在任何时候,cpu将CS,IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内容中读取指令码执行。
12、在cpu中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对cpu的控制。
13、mov指令可以改变8086cpu大部分寄存器的值,被称为传送指令。但是mov指令不能用于设置CS,IP的值。
14、修改CS,IP的值:
(1)同时修改CS,IP的内容:jmp 2AE3:3→2AE33H
功能:用指令中给出的段地址修改CS,偏移地址修改IP。
(2)仅修改IP的值:jmp 某一合法寄存器 jmp ax
功能:用寄存器中的值修改IP。
15、代码段:可以将长度为N(N<=64KB)的一组代码存在一组地址连续、起始地址为16的倍数的内存单元中,这段内存是用来存放代码的,从而定义了一个代码段。
cpu访问内存单元时,必须向内存提供内存单元的物理地址。8086cpu在内部用段地址和偏移地址移位相加的方法形成最终的物理地址。cpu可以用不同的段地址和偏移地址行形成同一个物理地址。