英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4470|回复: 0
打印 上一主题 下一主题

ccs vs picc

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-25 15:50:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
picc的:

#include <pic.h>

__CONFIG(HS&PWRTEN&WDTEN&BOREN&LVPDIS);

#define int8  unsigned char
#define int16    unsigned int


void main()
{
   int8 temp1=0,temp2=0;
   int16 temp=0,T=0;
while(1)
  {
temp1=1;
temp2=2;
   
*(int8 *)&temp=temp1;
*((int8 *)&temp+1)=temp2;
T=temp;

// temp=make16(temp1,temp2);

}

}

picc:

*(int8 *)&temp=temp1;
*((int8 *)&temp+1)=temp2;

汇编为:
movf temp1,w
movwf temp
movf temp2,w
movwf 0x23

temp 为0x22.0x23
4条指令




-----------------------
ccs的:3.187
#include <16F877A.h>
//#use delay(clock=20000000)
//#fuses NOWDT,HS, NOPROTECT,NOLVP

void main()
{
   int8 temp1=0,temp2=0;
   int16 temp=0,T=0;
while(1)
  {
temp1=1;
temp2=2;

*(int8 *)&temp=temp1;
*((int8 *)&temp+1)=temp2;
T=temp;

//temp=make16(temp2,temp1);

}

}
....................  *(int8 *)&temp=temp1;
0017:  MOVLW  temp
0018:  MOVWF  FSR
0019:  MOVF   temp1,W
001A:  MOVWF  INDF
....................  *((int8 *)&temp+1)=temp2;
001B:  MOVLW  temp+1
001C:  MOVWF  FSR
001D:  MOVF   temp2,W
001E:  MOVWF  INDF

....................  temp=make16(temp2,temp1);
0023:  MOVF   temp2,W
0024:  MOVWF  temp+1
0025:  MOVF   temp1,W
0026:  MOVWF  temp


-----------

看来picc在它的指针方面有它独到的地方了。结合指针,用picc有可能可以写出汇编级别的代码了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-25 22:01 , Processed in 0.051300 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表