鱼C论坛

 找回密码
 立即注册
查看: 4480|回复: 5

为什么说IP寄存器的值被改变了4次?

[复制链接]
发表于 2012-3-9 10:58:26 | 显示全部楼层
本帖最后由 小青鱼 于 2012-3-9 11:00 编辑

首先要明白指令执行的过程:
1.从CS:IP所指的长度读取指令,放入指令缓冲寄存器。
2.IP=IP+所读指令的长度,从而指向下条指令
3.执行指令,goto 步骤1;

这里主要是第三条指令有点模糊:jmp  ax
按上面的步骤:
1.首先读取 jmp ax
2.IP=IP+2 指向jmp ax的下一条指令    //有一次啦
3.执行 jmp ax     //jmp 指令的过程想信你明白 IP又会改变一次

所以加上前面两条指令改变的两次IP就是4次了
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-24 04:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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