
;……
MOV A, #10 ;预置数
LCALL PF ;调用子程序
;……
;……
PF:
MOV B, A
MUL AB
RET
END
这样定义的:
子程序名 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,也叫“平栈”。
我的程序是KEIL编译的,如下
先申明
EXTRN
CODE
(_Send_CRC)
;Send_CRC是C中的函数,汇编中加了_
调用的时候
LCALL
_Send_CRC
如果要使用C中的变量,那么CODE变成相应的DATA,XDATA等
以上就是关于单片机汇编语言中,调用子程序求A的平方,那子程序怎么表示全部的内容,包括:单片机汇编语言中,调用子程序求A的平方,那子程序怎么表示、汇编语言子程序是如何定义的、51单片机中汇编语言如何调用C的子程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)