龙源期刊?/p>
http://www.qikan.com.cn
汇编语言?/p>
C
语言混合编程的接口技?/p>
作者:金微
来源:《无线互联科技?/p>
2013
年第
09
?/p>
?/p>
要:随着网络与通信技术的发展,正在涌现出大量新的嵌入式系统,通常情况?/p>
C
?/p>
?/p>
C++
完成大部分的编程任务,仅有初始化部分用汇编语言完成。本文主要研究汇编语言?/p>
C
语言混合编程,在当前程序开发领域提供了新的途径?/p>
关键词:汇编程序?/p>
C
语言;编排技?/p>
1
引言
在平常编写程序时,我们一般都希望选择
C
?/p>
Pascal
?/p>
Basic
等这样的高级语言来编写,?/p>
级语言由于有编译器的支持,它们的语法更接近于自然语言,表达能力强,使用灵活,具有?/p>
大的库函数,更重要的是高级语言与机器无关,可移殖性较好,这样使程序开发周期比较短?/p>
省时省力。为了提高程序运行速度,或直接访问硬件,用汇编语言编程可以提高程序的运行效
率。为了既能缩短程序开发周期,又能保证程序的执行效率,较好的解决办法是程序的框架或
主体部分?/p>
C
语言编写,要求执行效率高的部分用汇编语言编写。这里就涉及到了混合编程?/p>
问题,这种混合编程的方法?/p>
C
语言和汇编语言的优点结合起来,所以成为目前单片机开发最
流行的编程方法。混合编程的关键是解决好高级语言与汇编语言的接口问题,可采用两种方
法:一是使用嵌入式汇编,即在高级语言的语句中直接使用汇编语句,这种方法比较简洁直
观,但功能较弱;另一种方法是独立编程,分别产生各自的目标文件,然后经过连接,形成一
个完整的程序?/p>
2
汇编语言?/p>
C
语言程序的变量相互调?/p>
在一个工程中,一般都会由多个汇编文件和多?/p>
C/C++
程序文件有机组成。在这些汇编?/p>
件和
C/C++
文件之间就存在变量相互访问和函数相互调用的问题。内嵌汇编不用单独编辑汇?/p>
语言文件,比较简洁,但是有诸多限制,当汇编的代码较多时一般放在单独的汇编文件中。这
时就需要在汇编?/p>
C
之间进行一些数据的传递,最简便的办法就是使用全局变量?/p>
2.1
汇编程序中访?/p>
C
程序变量
?/p>
C/C++
程序中声明的全局变量可以被汇编程序通过地址间接访问。具体访问方?/p>
/
步骤
如下?/p>
?/p>
C/C++
程序中声明全局变量;②在汇编程序使?/p>
IMPORT/EXTERN
伪指令声明引用该
全局变量;③使用
LDR
伪指令读取该变量的内存地址;④根据该数据的类型使用相应?/p>
LDR
?/p>
STR
指令读取或设置该变量的值。对于无符号变量,使?/p>
LDRB/STRB
访问
char
;使?/p>
LDRH/STRH
訪问
short
;使?/p>
LDR/STR
访问
integer
。对于有符号数,使用
LDRSB/LDRSH
?/p>