C51和汇编的混合编程
调用汇编程序(注意添加汇编程序的头文件)
需解决以下几个问题
程序的寻址问题

例:C51中
char max(char a, char b); //声明max()函数, 由汇编语言实现
main(){
char a = 30, b = 40, c;
c = max(a, b);
}
汇编语言:(开头固定格式)
PUBLIC: _MAX
DE SEGMENT CODE
RSEG DE
_MAX: …
参数传递问题

汇编语言:
_MAX: MOV A, R7 ;取第一个参数到A中
MOV 30H, R5 ;取第二个参数到30H单元中
CJNE 30H, A, TAG ;比较30H中的数与A中的数的大小
TAG: JC EXIT
MOV R7,R5
EXIT: RET
END
返回值传递问题

C51嵌入汇编代码
#pragma 语句实现
如:
void main(){
#pragma
//汇编代码
#pragma
}
本文探讨了C51与汇编语言混合编程的实践方法,重点讲解了如何在C51中调用汇编程序,解决寻址、参数传递及返回值问题。通过实例展示了具体的编程细节。
763

被折叠的 条评论
为什么被折叠?



