微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > keil C语言与汇编语言混合编程

keil C语言与汇编语言混合编程

时间:11-09 来源:互联网 点击:

直接相加得来。

由于在C语言的环境下,局部变量的寻址必须通过SP寄存器实现,在混合编程的时候,为了使汇编语言不影响堆栈寄存器SP,通常的方式是在汇编环境中使用DP方式寻址,这样可以使二者互不干扰。编程中只要注意对CPL位正确设置即可

1 .word 的意思就相当与C语言里的int,char等定义一个变两的宽度

2. 编译错误原因有2:

a.如果在汇编里面定义.global(全局符号),那么在C语言里面应该用extern声明,以引用该符号。

b.在汇编里面声明的时候,符号前应加下划线,如 FIQ_Addr: .word EXTint_FIQ 应为: FIQ_Addr: .word _EXTint_FIQ 在C语言里面应用extern声明。另外,一中方法是,用.ref 代替.global 来声明符号,这样就不用在C源程序里面用extern声明了。两种方法结果相同。 我讲的是用C和汇编混编程用法,至于C++变量如何翻译成汇编符号可以用仿真器,自己去看,原则类似.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top