C/C++教程

STM32的C与汇编语言混合编程

本文主要是介绍STM32的C与汇编语言混合编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、在Keil下完成C语言的汇编程序调用

在Keil的项目下创建main.c的C语言程序和Fun.s的汇编程序:请添加图片描述
main.c的代码:
请添加图片描述
Fun.s:
请添加图片描述
可以看到如下的调试结果:

main函数调用了Init()
请添加图片描述
请添加图片描述

二、原汇编语言 Init_1函数的类型改为 int Init_1(init) ,此函数功能修改为 传入一个整型数x,函数运行后返回整型数 x+100

首先修改main.c中的内容:请添加图片描述
Fun.s中的内容请添加图片描述
调试结果:

调用新的Init_1函数
请添加图片描述
寄存器中出现相应的值
请添加图片描述
总结:在Init_1中我们传入了一个值为25的参数,在函数中的原值为100,在寄存器R0中出现的7D正是

25+100的16进制的值,这说明成功调用了传入参数的函数。

三、汇编函数中调用一个 C语言写的函数

新建一个test.s文件和fun.c文件:
请添加图片描述
请添加图片描述
调试结果:请添加图片描述
由于a=100,b=100,c=200,而200的16进制为C8,说明C语言函数被调用成功。

这篇关于STM32的C与汇编语言混合编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!