
微机原理与汇编语言中的指令JMP、CALL的区别
2个回答
展开全部
汇编语言中,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指令的下一条指令处
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |