使用编译器生成汇编包含文件:在有些时候需要同时使用C语言与汇编语言编程,各自都有优缺点,然而C编译器无法读取汇编的包含文件*.inc,汇编器也无法读取C语言的头文件*.h。通过相关设置,可以让编译器生成符合汇编格式并包含C语言头文件信息的汇编包含文件。从*.h到术.inc的转换中,将C语言的宏定义#define、枚举、typedef类型定义、函数、变量以及注释转换成汇编伪指令EQU和外部引用XREF。
为了能让编译器自动生成汇编包含文件,需要设置编译器选项_La(compiler for HC08→Options→Output→Generate Assembler Include File)。同时在需要转换的C语言头文件术*.h中,将需要转换的部分用预处理指令对#pragma 4—ASM—LISTING ON与#pragIna4_ASM_LISTING OFF包含起来。实例步骤:
(1)新建C语言头文件a.h。
#pragma 4_ASM_LISTING ON
typedef struet{
short i;
short j;
}Struct—test;
Struct——test Var;
void f(void);
#pragma 4—ASM—LISTING OFF
(2)新建源文件a.c。为了能对头文件单独编译,新建的*.c文件只有一句:#include"a.h"。
(3)设置编译器选项一La:Compiler for HC08→Options→Output→Generate Assembler In→clude File,并指定生成的汇编包含文件名:a.inc。
(4)在a.c文件上单击右键并选择Compile。最后在项目\bin目录生成的*.inc文件内容如下:
Struct_test_SIZE EQU $ 4
Struct_test_i EQU $ 0
Struct_test_j EQU $ 2
XREF Var
Var_i EQU Var+$0
Var_j EQU Var+$ 2
XREF f
阅读更多请您关注: