导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:终于找到KEIL C51莫名其妙的地方了!各位大

* 8770: C51编程:终于找到KEIL C51莫名其妙的地方了!各位大侠进来看看,“MOVX”肯定是KEIL的bug!!!

   junhui_wu 
junhui_wu发表的帖子 

 C51编程:终于找到KEIL C51莫名其妙的地方了!各位大侠进来看看,“MOVX”肯定是KEIL的bug!!!
前几天发现我的程序运行不正常,我细细排查了程序,发现反汇编有莫名其妙的“MOVX”存
在,终于找到产生“MOVX”的原因!!
我的程序中用以下的程序得到压缩BCD码,根本没有用到XDATA,各位可以编译一下,您会发
现在汇编代码中(前10行)居然出现2处“MOVX”!!!如果不用指针,则没有
“MOVX”!!!
这难道不是KEIL C51的bug吗???请各位大侠讨论一下!!!
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
#define true 1
uchar data buffer[2];
void get_bcd(uint total_data,uchar *pointer)        //得到BCD码
{
    (*pointer)=(total_data/100);
    pointer++;
    total_data=(total_data%100);
    (*pointer)=((total_data/10)<<4)+(total_data%10);
}
void main(void)
{
    uint int_data;
    while(true)
    {
        int_data=976;
        get_bcd(int_data,buffer);
    }
}

发表时间:2002年7月6日11:51:00

  
回复该帖

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

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

  8781.[详细]这不是bug
摘要:用户没有指定指针的类型,指针可以指向外部ram,所以函数中会有包含movx指令。 在运行中,该movx并没有被运行。 ......(59字)
- [老古][1117次] 2002年7月6日

[上一篇帖子]:C51编程:Keil C51 V6xx的使用说明或手册之类的书哪里有卖?Keil
[下一篇帖子]:初学者:显示各位大师请教,我是一名研究生,现做课题作测控系统,现得到结果数据很大,要在液晶显示器 B