鱼C论坛

 找回密码
 立即注册
查看: 2807|回复: 7

监测点2.3中IP值的问题-汇编第二版

[复制链接]
发表于 2012-2-8 22:51:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
监测点2.3内:mov ax,bx;sub ax,ax;jmp ax;上述过程执行后修改了4次IP是肯定的,因其中跳转指令修改了两次,及跳转本身修改了一次,执行后再次修改了一次。但最后IP的值为何为0呢?jmp ax后,IP的值应该为ax+2才正确吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-9 02:51:04 | 显示全部楼层
because,ax=0,so,ip=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-9 13:46:48 | 显示全部楼层
sub ax,ax   ax=0      jmp ax   ax=0   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-9 22:11:17 | 显示全部楼层
因ax=0,ip=0?我还是不太理解,cs代码段寄存器,ip指令指针寄存器,这些都是地址的相关寄存器,和寄存器内存储的数据有什么关系呢?望高手继续解答…………
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-9 22:16:44 | 显示全部楼层
呵呵,小弟不才,终于搞明白了,jmp ax,因为有上面sub ax,ax的指令把ax寄存器中的内容清零了,所以jmp ax后ip内容变为0了,谢谢2楼和3楼的解答。
刚刚接触汇编,好多东西弄不太懂……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-9 22:24:28 | 显示全部楼层
根据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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-9 22:49:49 | 显示全部楼层
今天也算是有所收获,小甲鱼论坛热心人很多,希望我们共同学习共同进步,同时也谢谢6楼的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-9 23:53:22 | 显示全部楼层
sub,是减的意思,AX-AX.不就是0?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表