初学者怎样看懂代码 微机原理与汇编语言中的指令JMP、CALL的区别?
浏览量:1830
时间:2021-03-18 04:47:00
作者:admin
微机原理与汇编语言中的指令JMP、CALL的区别?
在汇编语言中,JMP是无条件传输指令,call是子程序调用指令。JMP指令与call指令的区别在于JMP指令控制程序直接跳转到目标地址执行程序。程序总是按顺序执行,指令本身没有堆栈操作过程。调用指令跳转到指定的目标地址以执行子例程。子例程执行后,它将返回到调用指令的下一条指令来执行程序。有一个堆栈操作进程来执行调用指令。例如:JMP next跳转到next执行程序。。。下一步:目标地址,程序将从这里向下执行。。。Call next调用从地址next开始的子例程,NOP子例程在这里返回,然后继续向下执行。。。下一步:子程序序列目标地址,程序将从这里执行RET向下子程序返回指令,子程序执行到此结束,返回到调用指令的下一条指令
用助记符表示的汇编语言指令格式如下:标签是程序员根据编程需要设置的符号地址,可选标签由1~8个字符组成。第一个字符必须是英文,而不是数字或其他符号。必须在标签后面使用冒号。表示数据传输的操作代码类型,例如添加操作代码。操作数或操作数地址表示参与运算的数据或数据的有效地址。操作数通常有以下形式:没有操作数,操作数在操作码中隐含。例如,RET指令只有一个操作数,CPLA指令有两个操作数,如Mova、#00h指令。操作数之间用逗号分隔,有三个操作数,如cjnea、#00h、next指令。操作数之间也用逗号分隔。注释是为了提高程序可读性而对指令进行的解释。必须在批注之前添加分号。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。