汇编—–寄存器

第二章的学习告一段落,这一章也算是开始正式接触一些汇编的基本指令,主要还是汇编中对寄存器的应用,对此也略有心得,大体如下:

一、通用寄存器

寄存器AX,BX,CX,DX,通常用于存放一般性数据,称为通用寄存器。每个寄存器均为16位。

这些寄存器均可拆分成两个8位寄存器单独使用,例如:AX可拆为AH和AL;

二、汇编指令:mov,add

在mov 和 add 指令中, 两个操作对象的位数应一致!

并且当运算时超出寄存器表示的位数时会自动舍去;

三、内存单元的物理地址

8086内部的寄存器都是16位的,而外部地址总线宽度为20位,所以在8086内部用两个16位地址通过计算合成得到一个20位的物理地址。即 段地址x16+偏移地址=物理地址;

其中:1. 段地址:偏移地址 又称 逻辑地址;

2. 段地址x16构成短的起始物理地址;

四、CS和IP

CS:代码段段寄存器,用于存放代码段的段地址;

IP:指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址;

CS:IP 对应的物理地址存放的是CPU将要读取的指令。

在8086CPU加电启动或复位后,CS=FFFFH,IP=0000H,所以CPU从内存FFFF0H处读取第一条指令;

五、修改CS和IP的指令jmp

1.同时修改CS、IP的内容: jmp 段地址:偏移地址;

用指令中给出的段地址修改CS,偏移地址修改IP;

2.只修改IP的内容: jmp 某一合法寄存器

用指令中寄存器的值修改IP;

此外:在读取命令之后的会立刻修改IP,若命令为jmp 则会再次修改IP!

并且 据观察,当读取的是mov,add等指令时,IP会增3;但当所读指令为jmp+ 某一寄存器时 IP会增5;

额…… 这一章的内容感觉上应该大差不差了。先到这里吧 ,下次继续。。。。

即使爬到最高的山上,一次也只能脚踏实地地迈一步。

汇编—–寄存器

相关文章:

你感兴趣的文章:

标签云: