永发信息网

汇编语言中近跳转和短跳转什么时候用

答案:5  悬赏:0  手机版
解决时间 2021-03-28 23:18
  • 提问者网友:锁深秋
  • 2021-03-28 10:34
汇编语言中近跳转和短跳转什么时候用
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-03-28 10:40
SJMP:短转移指令,若本条指令和下一条指令的间隔在128B内,则可使用SJMP
AJMP:绝对转移指令,若本条指令和下一条指令的首地址在同一个2KB即2页内,则可使用 AJMP
LJMP:长转移指令,能无条件在64KB内跳转。
全部回答
  • 1楼网友:爱难随人意
  • 2021-03-28 13:39
看你段的大小和地址距离了,具体的机器会不一样
  • 2楼网友:你哪知我潦倒为你
  • 2021-03-28 12:11
短转移时是用 JMP 字节寄存器
近转移时用 JMP 字寄存器 前后偏移量大小不一样,这个和楼上说的意思是相同的
如果有两个CODE段,应该先assume其中一个为cs,然后在这个代码段末尾给出下一个代码段的地址,不能把两段同时假定到cs
  • 3楼网友:像个废品
  • 2021-03-28 11:05
在一个段地址之内的跳转适合这俩跳转

准确的说也就是,64K范围以内的跳转,相当于16位的地址偏移量
这个指令占位数少,运行快。
这种跳转的地址指令只有16位,
  • 4楼网友:渊鱼
  • 2021-03-28 10:47
JMP指令是从程序当前执行的地方无条件转移到另一个地方执行。这种转移可以是一个短(short)转移(偏移量在[-128, 127]范围内),近(near)转移(偏移量在[-32K, 32K]范围内)或远(far)转移(在不同的代码段之间转移)。
短和近转移是段内转移,JMP指令只把目标指令位置的偏移量赋值指令指针寄存器IP,从而实现转移功能。但远转移是段间转移,JMP指令不仅会改变指令指针寄存器IP的值,而且还会改变代码段寄存器CS的值。
补充回答:符号地址若是标号,必是段内;符号地址若是双字变量,必是段间。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯