某论坛一帖"谁能给我和我爷爷的这组照片来副对联?",本来照片没什么的,楼主自己挡太阳时拍的一张照片,和给他遛鸟的爷爷拍的一张背影图,给无聊的她放在一起,来让人出对联帖,底下有不少回复,但这个回复太有才了!" 少女怕日以手遮阴,老汉爱鸟用套护阳!"
正文:
CS(代码段寄存器)、IP(指令指针寄存器) 指示了CPU当前要读取指令的地址, 假设CS中内容为M,IP中内容为N,则CPU从内存 M*16 + N 开始读取指令并执行.
CPU将CS:IP指向的内存单元中的内容看作指令.能够用指令读写的部件都是寄存器. 通过jmp指令修改它们的值,例如: jmp 2345:0 或 jmp ax 单独修改IP为ax中的内容.
代码段:长度为N(N<=64KB),一组地址连续、起始地址为16的倍数的内存单元.
8086CPU的工作过程:
1.从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
2.IP指向下一条指令;
3.执行指令.(转到步骤一,重复这个过程.)
检测点 2.3:
下面三条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
an: 每条指令的执行,IP中的值都会增长指令长度个单元.jmp指令会修改IP的值为ax寄存器中的值,因此这三条指令会四次修改IP;CPU将指令读取到指令缓冲器时修改IP的值,最后一次指令执行后修改; sub 指令为减法运算,最终IP中的值为ax,而sub指令后ax中的值为 0000H.