具体来说,子程序名称应该满足以下要求:
子程序名称首字母必须为字母P。
子程序名称可以包含若干个数字,例如P1、P123等。
子程序名称不能包含其他字符,例如空格、标点符号等。
所以,如果你使用PROCCALL指令调用子程序时,子程序名称的格式应该符合以上要求,否则可能会导致编译错误。
这样定义的:
子程序名 PROC NEAR|FAR
.
.
RET
子程序名 ENDP
子程序名相当于标号,表示本过程的符号地址。过程有NEAR和FAR两种类型,FAR型的过程可供段间调用,NEAR型过程仅供段内调用。
在一个过程中,至少要有一条返回指令RET,它可以书写在过程中的任何位置,但是过程执行的的最后一条指令一定是RET。
扩展资料:注意事项
一、子程序调用指令
格式:CALL [NEAR PTR] 子程序名
CALL指令的两个作用,1.将断点地址(CALL指令的下一条指令地址)压栈保存,2.转去子程序执行。
[NEAR PTR]可以省略。
二、返回指令
格式:RET [N]
指令作用:实现子程序执行完后返回主程序的指令。从堆栈栈顶d出一个字数据(段内调用)送入IP作为返回地址。N是立即数,执行完RET之后,再将SP增加N,也叫“平栈”。
一、主体不同
1、中断服务子程序:是一种服务,是通过执行事先编好的某个特定的程序来完成的。
2、普通子程序:是一个大型程序中的某部份代码,由一个或多个语句块组成。
二、功能不同
1、中断服务子程序:外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作。
2、普通子程序:负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
三、特点不同
1、中断服务子程序:为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。
2、普通子程序:常被使用在汇编语言层级上。子程序的主体是一个代码区块,当被调用时就会进入运行。
参考资料来源:百度百科-子程序
参考资料来源:百度百科-中断服务程序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)