鱼C论坛

 找回密码
 立即注册
查看: 1933|回复: 1

jmp short 标号好jmp 标号有却别吗

[复制链接]
发表于 2014-2-14 23:00:32 | 显示全部楼层 |阅读模式
1鱼币
RT。同样一段代码
把jmp short 标号换成jmp 标号
再用debug查看
发现jmp 标号后面跟着一个nop 空指令
我写代码的时候明明没有写nop
用jmp short 标号的时候就不会
为什么

最佳答案

查看完整内容

jmp 标号 是3个字节的, jmp short 标号 是2个字节的 当标号的地址在jmp语句下面的时候,编译器在编译源程序过程中读到 jmp 标号 语句时,不知道标号所在地址是多少,所以先留出3个字节,直到读到标号时再计算位移,如果位移在-128到127之间,则按jmp short 标号进行编译,也就是2个字节+1个nop(nop为1个字节)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-2-14 23:00:33 | 显示全部楼层
jmp 标号 是3个字节的, jmp short 标号 是2个字节的
当标号的地址在jmp语句下面的时候,编译器在编译源程序过程中读到 jmp 标号 语句时,不知道标号所在地址是多少,所以先留出3个字节,直到读到标号时再计算位移,如果位移在-128到127之间,则按jmp short 标号进行编译,也就是2个字节+1个nop(nop为1个字节)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-17 23:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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