汇编语言中子程序可以调用子程序吗

汇编语言中子程序可以调用子程序吗,第1张

汇编语言中子程序当然是可以调用其他子程序的。

我们编程时,之所以要引入子程序,其主要目的无非就是:减少重复代码;阅读方便;流程清晰;举例如下:

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次。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11487891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存