Codewarrior汇编中的XDEF和XREF释疑

在Freescale的codewarrior汇编程序中,在主函数文件和外部文件中怎样定义,才能在主

函数中调用外部文件中的函数呢?

其实可以用XDEF和XREF方式定义。XDEF用于定义一个可以被外部调用的函数,XREF用于

该文件调用外部函数,类似C语言中的头文件,在uc/os-ii对飞思卡尔单片机的移植范例中就使用

到了这两个伪指令。具体应用如例所示:
在file1中 (caller):
XREF FUNC_1
MainLoop:
NOP
JSR FUNC_1
BRA MainLoop

在file2中(callee):
XDEF FUNC_1
FUNC_1:
NOP
RTS

一、当C语言调用汇编语言时,采用如下的方法:

1、汇编源程序中:

XDEF ASMData, ASMConst ;声明 ASMData, ASMConst 可以在模块外访问

MyData: SECTION

ASMData: DS.W 1 ; 定义变量

MyConst: SECTION

ASMConst: DC.W $44A6 ; 定义常量

2、在C语言源程序中:

#pragma DATA_SEG MyData

extern int ASMData;

#pragma DATA_SEG DEFAULT

#pragma CONST_SEG MyConst

extern const int ASMConst;

#pragma CONST_SEG DEFAULT

 

二、当汇编语言调用C语言时,采用如下的方法:

1、在C语言源文件中:

unsigned int CData;

unsigned const int CConst;

2、在汇编语言源文件中:

XREF CData ; 外部声明的变量

XREF CConst ; 外部声明的常量

使用:

LDD CConst

STD CData





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值