早教吧作业答案频道 -->数学-->
jmpshort..指令的用法?通俗一点
题目详情
jmp short ..指令的用法?通俗一点
▼优质解答
答案和解析
jmp short s
这里编译器在处理这条语句的时候,会把jmp short翻译成机器码EB,把后面的标号s翻译成一个数字,这个数字有多大呢?前面的short给出了说明,是2个字节,这里的short限制了这个数字范围,也就是-128~+127之间.
这里开始解释这个数字的值,一般有点汇编知识的人都会认为这个数字是目的地址,实际上不是这样的(自己写个例子调试一下就知道了,机器码EB后面跟的并非是目的地址),这里放的数字实际上是目的地址和当前jmp之间的距离:
例如:
当前jmp short s 的偏移地址是0003
s:标号所在的地址是0008
jmp short 被翻译成了机器码EB,占一个字节
标号s被翻译成了一个数字,也占一个字节(本条指令共占0003和0004两个字节)
所以当前jmp指令距离标号s之间共隔了3个字节(0005,0006,0007)
因此,编译器就会在EB后面加上目的地址和当前jmp之间的距离3H
这条指令没有使cpu修改cs段,所以这个指令是段内跳转指令,实际上CPU检测到EB的时候就会在保持CS段不变的情况下,向前或是向后跳N个字节,N取决于EB后面的数字,该数字如果为正,则向前跳,为负则向回跳.使用上注意跳转的距离不要超出8位有符号数的表示范围就行.
这里编译器在处理这条语句的时候,会把jmp short翻译成机器码EB,把后面的标号s翻译成一个数字,这个数字有多大呢?前面的short给出了说明,是2个字节,这里的short限制了这个数字范围,也就是-128~+127之间.
这里开始解释这个数字的值,一般有点汇编知识的人都会认为这个数字是目的地址,实际上不是这样的(自己写个例子调试一下就知道了,机器码EB后面跟的并非是目的地址),这里放的数字实际上是目的地址和当前jmp之间的距离:
例如:
当前jmp short s 的偏移地址是0003
s:标号所在的地址是0008
jmp short 被翻译成了机器码EB,占一个字节
标号s被翻译成了一个数字,也占一个字节(本条指令共占0003和0004两个字节)
所以当前jmp指令距离标号s之间共隔了3个字节(0005,0006,0007)
因此,编译器就会在EB后面加上目的地址和当前jmp之间的距离3H
这条指令没有使cpu修改cs段,所以这个指令是段内跳转指令,实际上CPU检测到EB的时候就会在保持CS段不变的情况下,向前或是向后跳N个字节,N取决于EB后面的数字,该数字如果为正,则向前跳,为负则向回跳.使用上注意跳转的距离不要超出8位有符号数的表示范围就行.
看了 jmpshort..指令的用...的网友还看了以下:
初一英语题,拜托,快点一.用适当形式填空1.Jenny(have)aweekforhertript 2020-04-11 …
说说下列句子中加点词语的运用对句意的表达有什么好处隔一定的时间必须呼吸一次.必须了加点2松鼠通常一 2020-04-27 …
在采用点一点通信信道的通信子网中,如果两个结点之间没有连接的线路,那么它们之间的通信只能通过 2020-05-24 …
万分之二点一用数字%怎么表示 2020-06-11 …
求一篇被狗咬后急救的英语作文,要点,一用肥皂水清洗伤口若干分钟二冲洗后继续用酒精擦洗三伤口不宜包扎 2020-06-23 …
下列加点词语解释欠妥的一组是()A.我们母女俩也有“心有灵犀一点通”之时。心有灵犀一点通:心像有灵性 2020-11-02 …
时控开关最多有几路?有A、B、C、D、E、F...N盏不同的电灯,第一日的下午6点A灯通电,第二天的 2020-11-10 …
急,急,急,急呀.万分之二点一用数字%怎么表示? 2020-11-10 …
一条铁链长5m,铁链上端悬挂在某一点,放开后让它自由落下,铁链通过悬点正下方25m处某一点所用的时间 2020-12-30 …
英语音标的作用,如何运用?希望解释得通俗点又刚好说到点子上我除了会26个字母以外对英语一无所知,所以 2021-02-05 …