首先,先看一下mdk下的混合编程的基本方法:
使用如上方法就可以进行混合编程了。
但是要特殊注意一点,个人感觉这个是直接调用一个代码段,并非一个函数,因为他不会保护调用这个代码段之前的现场。比如:
在调用上面这个代码段之前,先定义一个num变量,供下面使用,如下:
而根据mdk的c语言转化成的汇编,将这个num变量存在R10中
那么进入这个代码段之后,R10的值被修改为4,返回到主函数,num的值也变为4
实验结果也会发现num从4开始,如下。
故感觉这只是调用一个代码段,并没有入栈保护现场,所以会对调用者的代码以及变量产生修改,代码段结束需要手动跳回调用者的代码。就是。