微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > c51与汇编语言的接口

c51与汇编语言的接口

时间:11-18 来源:互联网 点击:
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进行编译。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top