[标题级别说明:普通字体为了解,斜体为理解,加粗为掌握]
[()和[]里标注的是在其之前有下划线名词的一些解释]
>>通用寄存器(AX, BX, CX, DX):
通常用于存放一般性数据,每个寄存器均为16位。存放无符号数据范围为0~2^16-1.
以AX为例,可分为两个8位寄存器单独使用,高八位AH(high),低八位AL(low),其可存放无符号数据范围为0~2^8-1.
>>段寄存器(CS,DS,ES,SS)
>>理解段的概念
段是8086为解决用16位寄存器表示20位的物理地址而引入的一个逻辑上的概念。 可以根据需要,将地址连续、起始物理地址为16倍数的一组内存单元(不超过64KB)当作一个"段"使用。
>>掌握字数据在寄存器中的存储
首先要了解字在寄存器中的存放:字节 (内存划分的基本单位) 字 (两个字节 )双字( 四个字节) 四字( 八个字节)
字的高(低)8位存放于通用寄存器的高(低)8位寄存器
>>掌握物理地址的计算方法,并理解其本质
物理地址:CPU访问内存单元时要给出内存单元的地址。 所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。
8086内部的寄存器都是16位的,而外部地址总线宽度为20位,因此8086在内部用两个16位地址 通过计算合成得到一个20位的物理地址。
CPU根据"物理地址 = 段地址 × 16 + 偏移地址"得到物理地址,用"段地址:偏移地址"(又称"逻辑地址",不唯一)来描述物理地址,段地址 × 16 构成段的起始物理地址,故根据需要划分段使用时,段的起始物理地址必须是16的倍数。
>>掌握寄存器CS和IP的用途
CS: 代码段段寄存器,用于存放代码段的「段地址」
IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。
计算机工作时通过CS:IP判断哪些是指令,CS:IP对应的物理地址[(CS) × 16 + (IP) ]存放的是CPU将要读取的指令。
计算机工作步骤->第1步: CPU基于CS:IP,计算出物理地址,然后到相应的内存单元读取指令,送到指令缓冲区。 第2步: CPU自动修改IP的值,IP = IP + 所读取指令的长度,从而为下一条指令读取做准备; 第3步: 执行指令。 转第1步,重复此过程。
要注意的是, IP和CS值的修改不能通过mov指令实现,需借助转移指令 (如jmp, call等)。
>>掌握汇编指令mov, add和jmp的基本用法
mov和add指令使用的注意事项:
(1) 在mov和add指令中,两个操作对象的位数应一致。
(2) 运算时超出寄存器表示的位数的情形:
例2中AL和AH各自作为独立的寄存器使用.
用jmp指令修改CS和IP的一些用法
(1) 同时修改CS、IP的内容:jmp 段地址: 偏移地址
(2)只修改IP的内容:jmp 某一合法寄存器