← Home

CSIP鸡你太美存器

6 April, 2020

之前刚学的时候对这个玩意音响没那么深刻,现在再学,感觉很不一样了。

CS为代码段寄存器,IP为指令指针寄存器。 设CS = M, IP = N, 8086CPU将从 M × 16 + N 处读取指令并进行。

也可以这样表述: 8086CPU中,任意时刻,CPU都会将CS:IP指向的内容做为执行指令.

执行流程:


当8086CPU加点或者复位后,CS = FFFFH, IP = 0000H,也就是CPU清晨起床做的第一件事就是去执行FFFF0H内存单元中存放的机器指令。

修改CS:IP

mov指令能帮我们将值送入寄存器。但是,它不能用于修改CS:IP,原因很简单8086出于设计考量不允许。 能修改CS:IP的指令统称为转移指令(以后我们深入研究),现在我学习第一个可以修改CS:IP寄存器的指令,jmp.

若想同时修改CS:IP寄存器,可以用jmp 段地址, 偏移地址的指令来完成。

jmp 2AE3:3 ;执行后: CS = 2AE3H IP = 0003H, CPU 将从这2AE33H 处读取指令

如果只想修改IP寄存器, 可以用jmp 寄存器的指令来完成.

jmp ax

类似, mov IP, ax