Codewarrior汇编中的XDEF和XREF释疑

    xiaoxiao2021-11-30  22

    原文地址:Codewarrior汇编中的XDEF和XREF释疑 在Freescale的codewarrior汇编程序中,在主函数文件和外部文件中怎样定义,才能在主

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

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

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

    到了这两个伪指令。具体应用如例所示:在file1中 (caller):XREF FUNC_1MainLoop:NOPJSR FUNC_1BRA MainLoop在file2中(callee):XDEF FUNC_1FUNC_1:NOPRTS

    一、当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

    转载请注明原文地址: https://ju.6miu.com/read-679030.html

    最新回复(0)