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

* 7261: C51编程:C中嵌入汇编的高手请看看

   dbwolf 
dbwolf发表的帖子 

 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



发表时间:2002年5月7日13:03:00

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:对不起,我回复错了
[下一篇帖子]:硬件:求助8088仿真器知识,那位仁兄知道在哪能找到这方面的内容