stm32内联汇编

Posted DChipNau

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32内联汇编相关的知识,希望对你有一定的参考价值。

首先,先看一下mdk下的混合编程的基本方法:

 

 

使用如上方法就可以进行混合编程了。

 

但是要特殊注意一点,个人感觉这个是直接调用一个代码段,并非一个函数,因为他不会保护调用这个代码段之前的现场。比如:

 

在调用上面这个代码段之前,先定义一个num变量,供下面使用,如下:

 

而根据mdkc语言转化成的汇编,将这个num变量存在R10

 

那么进入这个代码段之后,R10的值被修改为4,返回到主函数,num的值也变为4

 

实验结果也会发现num4开始,如下。

 

 

故感觉这只是调用一个代码段,并没有入栈保护现场,所以会对调用者的代码以及变量产生修改,代码段结束需要手动跳回调用者的代码。就是

 






以上是关于stm32内联汇编的主要内容,如果未能解决你的问题,请参考以下文章

64 位应用程序和内联汇编

64 位应用程序和内联汇编

x86 - 使用内联汇编设置位

C 内联汇编帮助(数字 mars c 编译器)

内联汇编获取Kernaer32基址.

GCC 无法从具有内联汇编的函数生成 32 位代码