目录
二、原汇编语言 Init_1函数的类型改为 int Init_1(init) ,此函数功能修改为 传入一个整型数x,函数运行后返回整型数 x+100
一、在Keil下完成C语言的汇编程序调用
在Keil的项目下创建main.c的C语言程序和Fun.s的汇编程序:

main.c的代码:

Fun.s:

可以看到如下的调试结果:
main函数调用了Init()
成功调用Func.s文件 
二、原汇编语言 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语言函数被调用成功。
本文介绍了如何在Keil环境下进行C语言与汇编的混合编程,包括C调用汇编函数和汇编调用C函数。通过实例展示了如何修改函数类型,如将汇编函数Init_1改为接受整型参数并返回加100后的值,并展示了调试过程中的寄存器变化。此外,还展示了如何在汇编程序中调用C语言函数,验证了参数正确传递并得到预期结果。
185

被折叠的 条评论
为什么被折叠?



