汇编大牛请进。关于jmp short s 指令。

2025-05-17 12:17:15
推荐回答(4个)
回答(1):

因为自己在代码中标明的S是汇编语言,也就是程序员自己表达要转移的地方,而在机器码中不是存要转移到哪个标号,而是转移到向前或者向后转移多少个字节;比如要向后转移3个字节,机器中存储的就是EB03,向前转移5个字节就是EBF6,EB就是jmp意思,而03和F6就是转移位移,F6是补码;至于什么是机器码和汇编指令,不懂你就再追问吧,这里就不啰嗦了!

回答(2):

我的想法是:如果jmp指令给定的是标号s的ip,然后直接跳过去,那这应该算是绝对跳了。
,如果程序放到了另一台电脑上可能就不一定找的到那个ip了,因为标号的偏移地址可能改变,而如果是给定相对差,那么就可以直接找到那个ip,
额,我也不懂,乱说的,不要笑。。。

回答(3):

我的理解。jmp short s中的S只是一个标号,代表着 要转向的程序段的地址,源代码经过编译,变成机器代码,机器代码被分配了逻辑地址,描述着指令序列及其中间的位置关系。程序运行时 依据这位置关系开始占用实际内存地址。代码编译后S被 转向的程序段落的地址所取代。

回答(4):

没有为什么,汇编语言就是这样定义的,短跳转是位移,长跳转是段地址加偏移地址。