监测点2.3中IP值的问题-汇编第二版
监测点2.3内:mov ax,bx;sub ax,ax;jmp ax;上述过程执行后修改了4次IP是肯定的,因其中跳转指令修改了两次,及跳转本身修改了一次,执行后再次修改了一次。但最后IP的值为何为0呢?jmp ax后,IP的值应该为ax+2才正确吧 because,ax=0,so,ip=0 sub ax,ax ax=0 jmp ax ax=0 因ax=0,ip=0?我还是不太理解,cs代码段寄存器,ip指令指针寄存器,这些都是地址的相关寄存器,和寄存器内存储的数据有什么关系呢?望高手继续解答………… 呵呵,小弟不才,终于搞明白了,jmp ax,因为有上面sub ax,ax的指令把ax寄存器中的内容清零了,所以jmp ax后ip内容变为0了,谢谢2楼和3楼的解答。刚刚接触汇编,好多东西弄不太懂…… 根据CPU的工作过程来看
读取指令 mov ax,bx进入指令缓冲器 ip+3 执行指令mov ax,bx (执行结果ax=bx中的数据)
读取指令sub ax,ax进入指令缓冲器 ip+3 执行指令sub ax,ax (执行结果ax=0)
读取指令 jmp ax进入指令缓冲器 ip+2 执行指令jmp ax (执行结果ip=0)
故ip修改了4次,最终ip为0 今天也算是有所收获,小甲鱼论坛热心人很多,希望我们共同学习共同进步,同时也谢谢6楼的回复 sub,是减的意思,AX-AX.不就是0?
页:
[1]