微机原理与汇编语言中的指令JMP、CALL的区别
答案:4 悬赏:30 手机版
解决时间 2021-04-27 09:15
- 提问者网友:心如荒岛囚我终老
- 2021-04-26 14:36
微机原理与汇编语言中的指令JMP、CALL的区别
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-04-26 14:44
汇编语言中,JMP是无条件转移指令,CALL是子程序调用指令。
指令JMP、CALL的区别在于,JMP指令控制程序直接跳转到目标地址执行程序,程序总是顺序执行,指令本身无堆栈操作过程。CALL指令跳转到指定目标地址执行子程序,执行完子程序后,会返回CALL指令的下一条指令处执行程序,执行CALL指令有堆栈操作过程。
举例如下:
JMP NEAR NEXT;跳转到NEXT执行程序
......
NEXT: ;目标地址,程序将从这里向下执行
......
CALL NEXT;调用从地址NEXT开始的子程序
NOP ;子程序结束后返回到这里,然后向下继续执行程序
......
NEXT: ;子程序目标地址,程序将从这里向下执行
RET ;子程序返回指令,子程序执行到此结束,返回CALL指令的下一条指令处
指令JMP、CALL的区别在于,JMP指令控制程序直接跳转到目标地址执行程序,程序总是顺序执行,指令本身无堆栈操作过程。CALL指令跳转到指定目标地址执行子程序,执行完子程序后,会返回CALL指令的下一条指令处执行程序,执行CALL指令有堆栈操作过程。
举例如下:
JMP NEAR NEXT;跳转到NEXT执行程序
......
NEXT: ;目标地址,程序将从这里向下执行
......
CALL NEXT;调用从地址NEXT开始的子程序
NOP ;子程序结束后返回到这里,然后向下继续执行程序
......
NEXT: ;子程序目标地址,程序将从这里向下执行
RET ;子程序返回指令,子程序执行到此结束,返回CALL指令的下一条指令处
全部回答
- 1楼网友:等灯
- 2021-04-26 18:15
jmg是无返回的,想回来还要jmp才行
call是调用过程或函数,以ret,retf之类的返回到调用位置或下一句
call是调用过程或函数,以ret,retf之类的返回到调用位置或下一句
- 2楼网友:廢物販賣機
- 2021-04-26 16:44
jmp无条件跳转,无返回,没有压栈(起到保护数据的作用)。call通过入口地址跳转有返回,返回地址压入堆栈。
- 3楼网友:冷風如刀
- 2021-04-26 15:41
(1)
JMP L1
L1:表示的是L1-(当前指针+1)
(2)
CALL L2
L2 ;表示的是L1-(当前指针+1)
将程序压栈入内存
JMP L1
L1:表示的是L1-(当前指针+1)
(2)
CALL L2
L2 ;表示的是L1-(当前指针+1)
将程序压栈入内存
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯