jmp short 标号好jmp 标号有却别吗
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个字节)
页:
[1]