1.c51与汇编语言的模块内接口
有时候,需求运用汇编语言来编写程序,比如对硬件进行操作或在一些对时钟要求很严厉的场合,但又不期望用汇编语言来编写悉数程序或调用汇编语言编写的函数,那么能够通
过预编译指令“asm,在C代码中刺进汇编代码。
办法是用#pragma句子。详细结构是:
#pragma asm
汇编行
#pragma endasm
这种办法是经过#pragma asm和#pragma endasm告知c51编译器,中心行不必编译为汇编行。例如:
2.c51与汇编语言的模块间接口
C51模块与汇编语言模块的接口较简略,分别用C5l与A51对源文件进行编译,然后用L51衔接obj文件即可。模块接口间的要害问题在于C函数与汇编函数之间的参数传递。C51中有两种参数传递办法。
①经过寄存器传递函数参数
汇编函数要得到参数值时就拜访这些寄存器,假如这些值正被运用并保存在其他当地或己经不再需求了,那么这些寄存器可被用作其他用处。应该注意到经过内部RAM传递参数的函数将运用规则的寄存器,汇编函数将运用这些寄存器接纳参数。关于要传递多于3个参数的函数,剩下的参数将在默许的存储器段中传递。
②经过固定存储区传递(Fixed Memory)
(3)SRC操控
该操控指令将C文件编译生成汇编文件(.SRC),该汇编语言文件在改名后,生成汇编.ASM文件,再用A5l进行编译。