我们编程时,之所以要引入子程序,其主要目的无非就是:减少重复代码;阅读方便;流程清晰;举例如下:
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
大致思路就是只要不把他们放在一个主程序内就OK了,放在同一个文件或者不同.f文件都是一样的。对于第二个问题,回答也是可以的比如说这样的程序调用:
PROGRAM
MAIN
CALL
SUB1
END
SUBROUTINE
S
CALL
SUB2
END
SUBROUTINE
SUB2()
CALL
SUB3
END
SUBROUTINE
SUB3()
*********
END
这几个子程序和主程序PROGRAM
MAIN可以放在同一个.f文件里面编译,也可以分别放置不同.f文件,编译时效果一样。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)