(文中用到的编译器一律为keil)
1、首先来个范例,并从这个范例展开说明:
............ //C51 Code here
#pragma ASM
............. //Here is the Assembler Code
#pragma ENDASM
........... //C51 Code here
2、看到范例,大家应该对实现C51和汇编的混合有个大概了解了,其实也就这么一回事。但是我们还必须要做一些前提工作,首先在Project窗口中包含汇编代码(ASM)的C文件单击右键,选择“Options for ...”,然后点击“GenerateAssembler SRC File”和“Assemble SRC File”
3、根据选择的编译模式,把相应的库文件加入工程,应该注意的是,这个文件必须作为该工程的最后一个文件
4、大家可以复制下面这个C51和汇编的混编代码练习一下,加深印象
#i nclude <reg51.h>
void main(void)
{
P2=0x00;
#pragma asm
MOV R7,#10
#pragma endasm
P2=0xff;
}
5、上面的过程掌握了以后,我们再来看一下如何实现无参数传递的函数调用例如我们要调用一个延时函数delay()
//C51
extern void delayms(); //声明
int main()
{
delayms(); //调用
}
6、有参传递
其实是一样的,就是在子函数中加了参数罢了
例如:int delay(int minite,int second,……)//参数可以多个
我要赚赏金打赏帖 |
|
|---|---|
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
| 【瑞萨BLE/WIFI模块测评】环境搭建被打赏¥32元 | |
| 【瑞萨RA8D1测评】LVGL显示动画被打赏¥30元 | |
| 【瑞萨RA8D1测评】IMU动作识别的数据采集与模型训练被打赏¥33元 | |
| 【S32K3学习整理】时钟系统 ClockOut 功能被打赏¥28元 | |
| 【S32K3学习整理】以太网LoopBack模式功能验证被打赏¥26元 | |
我要赚赏金
