导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:C中嵌入汇编的高手请看看[dbwolf]

 *第3124篇: C51编程:C中嵌入汇编的高手请看看

  
楼 主:dbwolf 2002年5月7日13:03
 C51编程:C中嵌入汇编的高手请看看
请求帮助:如何在汇编子函数中使用全局指针变量
说明:以下两个函数使用 C 程序编译连接,顺利通过。但是,把子函数转化成汇编,出现
错误。
      我使用“Keil C51 V6.23”编译器.
E-mail:inspra@xjgroup.com    开发部:黄生
/*******************************************/
/*模块名:主调函数*/
/*功能描述:调用子函数,赋值全局指针变量*/
/*其它说明:C 程序中调用汇编子函数*/
unsigned char xdata temp;
unsigned char xdata *p;
void func(void);
void main(void)
{    
    unsigned char xdata i;
     while(1)
    {
        p = &temp;    
        *p = 98;    
        func();
        i = *p;
    }
}
/*************************************************/
/*模块名:应用全局指针变量的子函数*/
/*功能描述:对全局指针变量 p 赋值*/
/*其它说明:此函数先编译成 MYPTR.A51 汇编语言,然后用生成的汇编与 main 函数联合
编译*/
#pragma src(MYPTR.A51) small

extern unsigned char xdata *p;

void func(void)
{    
    *p = 0xdd;
}
/*************************************************/
/*由编译器自动生成的汇编程序*/
NAME    TESTARRAY

?PR?func?TESTARRAY   SEGMENT CODE 
    EXTRN    DATA (p)
    PUBLIC    func
    RSEG  ?PR?func?TESTARRAY
func:
    MOV      DPL,p+01H
    MOV      DPH,p
    MOV      A,#0DDH
    MOVX     @DPTR,A
    RET      
    END


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:硬件:什么是SMD封装,有何特点?

[下一篇主题]:硬件:求助8088仿真器知识,那位仁兄知道在哪能找到这方面的内容