2.10 段寄存器CS和指令寄存器IP
8086CPU有四个段寄存器:CS代码段寄存器、DS数据段寄存器、SS栈段寄存器、ES堆栈段寄存器,当CPU要访问内存时由这4个内存单元提供段地址。在本章中只讨论CS
CS(Code Segment)为代码段寄存器,IP(Instruction Pointer)为指令指针寄存器。设CS中的内容为M,IP中的内容为N,8086CPU将从内存$M\times 16 +N$单元开始。
8086CPU的工作过程如下:
2.11 修改CS、IP的指令
在CPU中,程序员能够修改的部件只有寄存器。因此,我们也可以通过改变CS、IP的值控制CPU从何处执行指令。
为了专门改变CS、IP的值,8086CPU为其提供了另外的jmp指令。
语法:jmp 段地址:偏移地址
Assembly> jmp 2AE:003
执行后,CS中的值变为2AE,IP中的值变为003
注:mov CS, 2AE不是合法的指令
如何单独修改IP的内容?
语法:jmp 某一合法寄存器