call crlf //这里调用crlf这个子程序灶扰
crlf proc near //这里写纤辩枣名为crlf的子程序
//子程序代码
ret
crlf endp
你是指内联汇编吧?比如下面这个例子:
#include <stdio.h>int func(int a, int b)
{
return a - b
}
int main()
{
//计算 12-5
int 饥磨旦a = 12, b = 5 //给定两个数
int res //用来记录结果
__asm{ //内联汇编
push b //b压栈
push a //a压栈,注意C中函数接受参数的时候入栈是反烂扰着的
call func //调用游唯函数func, 返回值保存在eax里
mov res, eax //将eax里的值赋给res
}
printf("%d\n", res) //输出结果,得到7
return 0
}
汇编语言中子程序当然是可以调逗漏用其他子程序的。我们编程时,之所以要引入子程序,其主要目的无非就是:减少重复代码;阅读方便;流程清晰;举例如下:
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)