导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→再问!

* 3573: 初学者:请问?请问?

   hanjiang 
hanjiang发表的帖子 

 再问!
以下c程序和汇编程序使用同样的keil51设置,但他们生成的hex文件不同:
1。汇编程序:
   MAIN: SETB P1.0;
      LCALL DELAY;
      CLR P1.0;
      LCALL DELAY;
      AJMP MAIN;

DELAY:MOV R7,#250;
   D1:MOV R6,#250;
   D2:DJNZ R6,D2;
      DJNZ R7,D1;
      RET
      END
  汇编的hex文件:
:10000000D29012000CC29012000C01007FFA7EFA0E
:05001000DEFEDFFA2214
:00000001FF

2。同样的程序用c写:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit P10=P1^0;

void delay(uint i)
{ uint j;
  for(;i>0;i--)
   {for(j=0;j<125;j++)
    {;}
   }
}

void main()
{ for(;;)
  {P10=1;
   delay(500);
   P10=0;
   delay(500);
  }
}
 相应的hex文件却是:
:10800000D3EF9400EE94004015E4FDFC0DBD00019B
:0E8010000CED647D4C70F5EF1F70E51E80E2F4
:01801E00223F
:10801F00D2907FF47E01128000C2907FF47E011215
:04802F00800080EC61
:0300000002803348
:0C803300787FE4F6D8FD75810702801FFD
:00000001FF
怎样才能该0x8000到0x0000呢?应为烧写器是找不到0x8000这样的地址的。

发表时间:2001年12月14日12:44:00

  
回复该帖

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

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

  3576.[详细]是否修改了startup.a51的文件?
摘要:......(无内容)
- [老古][1418次] 2001年12月14日

  3588.[详细]没有修改startup.a51的文件
摘要:没有。要修改吗? 我看过了,它的起始地址是0000。 编译是要把它加入工程吗?......(39字)
- [hanjiang][1591次] 2001年12月14日

  3591.[详细]重新安装你的keil。
摘要:......(无内容)
- [老古][1284次] 2001年12月14日

[上一篇帖子]:硬件:请教老古PCI总线问题:老古:在ISA总线中对I/O口的操作是通过Turbor c中
[下一篇帖子]:hlg8888GO!protel.com