微机原理与汇编语言中的指令JMP、CALL的区别 50

请高手指点汇编语言。谢谢!... 请高手指点汇编语言。谢谢! 展开
 我来答
NJGQZF
推荐于2017-09-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1208万
展开全部
汇编语言中,JMP是无条件转移指令,CALL是子程序调用指令。
指令JMP、CALL的区别在于,JMP指令控制程序直接跳转到目标地址执行程序,程序总是顺序执行,指令本身无堆栈操作过程。CALL指令跳转到指定目标地址执行子程序,执行完子程序后,会返回CALL指令的下一条指令处执行程序,执行CALL指令有堆栈操作过程。
举例如下:
JMP NEAR NEXT;跳转到NEXT执行程序
......
NEXT: ;目标地址,程序将从这里向下执行
......

CALL NEXT;调用从地址NEXT开始的子程序

NOP ;子程序结束后返回到这里,然后向下继续执行程序
......

NEXT: ;子程序目标地址,程序将从这里向下执行

RET ;子程序返回指令,子程序执行到此结束,返回CALL指令的下一条指令处
春晖啊
2012-12-27 · TA获得超过526个赞
知道答主
回答量:466
采纳率:50%
帮助的人:108万
展开全部
jmp无条件跳转,无返回,没有压栈(起到保护数据的作用)。call通过入口地址跳转有返回,返回地址压入堆栈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d0b5968
2006-07-02 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:137万
展开全部
jmg是无返回的,想回来还要jmp才行
call是调用过程或函数,以ret,retf之类的返回到调用位置或下一句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hbyd415
2013-01-04
知道答主
回答量:21
采纳率:0%
帮助的人:18万
展开全部
(1)

JMP L1
L1:表示的是L1-(当前指针+1)
(2)

CALL L2
L2 ;表示的是L1-(当前指针+1)
将程序压栈入内存
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式