stm32内联汇编

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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 






原文地址:https://www.cnblogs.com/dchipnau/p/5255459.html