如何分配变量到指定的地址 举例: unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00 unsigned char temp_B@0x100; //定义无符号变量temp_B,强制其地址为0x100 @tiny unsigned char temp_C; //定义无符号变量temp_C,由编译器自动在地址小于0x100 的RAM 中为其分配一个@near unsigned char temp_D; //定义无符号变量temp_D,由编译器自动在地址大于0xFF 的RAM 中为其分配一个另外也可以采用伪指令"pragma"将函数或者变量定义到指定的section 中,例如: #pragma section [name] // 将下面定义的未初始化变量定义到
name section 中 Unsigned char data1; Unsigned int data2; ……(任何需要定义在
name section 中的变量) …… #pragma section [] // 返回到正常的section
注意:pragma 伪指令可以用来定位函数,初始化变量或者未初始化变量
这三者用不同的括号区分
(name):代码 [name] :未初始化变量 {name}:初始化变量 如何在COSMIC C 文件中使用汇编语言 在COSMIC C 文件中使用汇编语言常见的方法有如下两种:使用#asm …#endasm组合格式 或_asm("…"); 单行格式
举例1: unsigned char temp_A; Void func1(void) {
#asm PUSH A LD A,(X) LD _temp_A,A POP A #endasm
} 注:在C 嵌汇编环境下使用全局变量,要在该全局变量名称前加下划线"_