夏 娟, 赵 梅
(苏州科技学院 电子信息科学与技术学院, 江苏 苏州 215011)
汇编语言是一种面向机器的语言,其特点是运行速度快,占用内存空间小,并且可直接对硬件进行控制,但是汇编语言编写及调试程序相对高级语言要困难、复杂,尤其是进行数据处理及数值混合运算.但是C/C++作为高级语言,具有数据类型丰富、表达能力强、效率高、可移植性好且使用灵活方便等优点[1].因此,为了充分利用两种语言的优势,扬长避短,在软件开发过程中,常采用混合编程的方法,即两种语言彼此相互调用,进行参数传递,共享数据结构及数据信息.目前,在DSP芯片控制程序的开发及单片机程序的设计中,汇编语言与C/C++语言混合编程都是较为理想的解决方案.通常主程序及数据处理或图形显示程序采用C/C++语言编写,而中断处理函数、延时函数和硬件驱动程序等采用汇编语言编写,这样在提高了代码效率的同时又降低了程序设计的复杂度.
汇编语言和C/C++语言混合编程的方法有两种[2]:在C/C++源程序中直接插入汇编源代码,称为嵌入式汇编;在C/C++源程序中调用外部的汇编语言程序.
所谓嵌入式汇编是在C/C++源程序中,在需要的地方插入汇编指令,并在嵌入的汇编指令前加上关键字.
在C语言中内嵌汇编语言时,使用关键字_asm,格式如:_asm 〈操作码〉〈操作数〉
例如:asm mov ax,ds; asm push ds;
其中操作码是有效的8086指令及某些汇编伪指令db,dw,dd及extern.操作数可以是C语言中的常量、变量、标……