我们编程时,之所以要引入子程序,其主要目的无非就是:减少重复代码;阅读方便;流程清晰;举例如下:
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP:
LCALL KEYSCAN
JB 00H,LOOP1
MOV P0,A
RL A
MOV R7,#200
LCALL DELAY
SJMP LOOP
LOOP1:
RR A
MOV R7,#200
LCALL DELAY
SJMP LOOP
KEYSCAN: 按键检测子程序
JB P1.0,KEYR 没有按键退出
MOV R7,#20 延时子程序传递参数
LCALL DELAY 调用延时子程序
JNB P1.0,$ 等待按键抬起
CPL 00H 按键处理 位00H取反
KEYR:
RET
DELAY:
MOV R3,#250
DJNZ R3,$
DJNZ R7,DELAY
RET
END
这个是可以的,比如有函数fun1()
{}
fun2()
{
fun1()
}
fun3()
{
fun1()
fun2()
}
main()
{
fun3()
}
这样是完全可以的。
中断服务子程序不能直接调用,因为它们是特殊的程序,它们的功能是在 *** 作系统中运行,而不是在应用程序中运行。它们可以在 *** 作系统中执行特定的任务,比如处理系统中的中断,但是它们不能直接被应用程序调用。因此,如果要调用中断服务子程序,必须使用 *** 作系统提供的特殊接口,这些接口可以让应用程序调用中断服务子程序。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)