我们编程时,之所以要引入子程序,其主要目的无非就是:减少重复代码;阅读方便;流程清晰;举例如下:
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
例:
#include<stdio.h>
intsushu(intx)
{inti
for(i=2i<xi++)
if(x%i==0)break
if(i==x)return1
elsereturn0
}
main()
{inti,n=0
for(i=2i<=1000i++)
if(sushu(i)==1)n++:
printf("n=%d",n)
}
扩展资料
使用vfork()新建子进程,然后调用exec函数族
#include<unistd.h>
main()
{
char*argv[]={“ls”,”-al”,”/etc/passwd”,(char*)}
if(vfork()==0)
{
execv(“/bin/ls”,argv)
}else{
printf(“Thisistheparentprocess\n”)
}
}
【子程序命名规则】西门子数控系统子程序命名方式有两种:一种是以连续两个字母开头,后续字符可以字母、数字或下划线(不包括分隔符),最多16个字符,例如,SS08_12;另一种是以地址符L开头,后接数字组成,例如,L8。
【子程序调用示例】
主程序:
SS2017 (主程序名)
T1
M6
……
L8(或者SS08_12) (调用子程序L8)
……
M30
子程序:
L8(或者SS08_12)
……
RET
【多次调用子程序的方法】
程序语句格式为子程序名后接字母P和调用次数,例如,L8 P5 (调用子程序L8五次)。子程序调用次数最多为9999次。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)