打印

数组常量生成连续的RETLW K指令用C如何表示?

[复制链接]
2706|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
allround|  楼主 | 2011-5-16 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 allround 于 2011-5-16 21:41 编辑

请教大家,数组常量生成连续的RETLW K指令用C如何表示呢?

代码如下:

//已定义如下数数组常量
     const unsigned char SN_Code[3]={0x11,0x22,0x33};  //

//引用语句
     SNL=SN_Code[2];
     SNM=SN_Code[1];
     SNH=SN_Code[0];

//编译结果
175:                    SNL=SN_Code[2];
   357    3003     MOVLW 0x3
   358    0084     MOVWF 0x4
   359    2033     CALL 0x33
   35A    00A1     MOVWF 0x21
176:                    SNM=SN_Code[1];
   35B    3002     MOVLW 0x2
   35C    0084     MOVWF 0x4
   35D    2033     CALL 0x33
   35E    00A2     MOVWF 0x22
177:                    SNH=SN_Code[0];
   35F    3001     MOVLW 0x1
   360    0084     MOVWF 0x4
   361    2033     CALL 0x33
   362    00A3     MOVWF 0x23




   030    29E9     GOTO 0x1e9
   031    29EB     GOTO 0x1eb
   032    29EE     GOTO 0x1ee
   033    3000     MOVLW 0
   034    008A     MOVWF 0xa
   035    0804     MOVF 0x4, W
   036    0A84     INCF 0x4, F
   037    0782     ADDWF 0x2, F
   038    3400     RETLW 0
   1CE    29F0     GOTO 0x1f0
   1F0    300F     MOVLW 0xf


现在的问题是,我想编译器生成连续的RETLW要如何做呢,即想要的是
RETLW  0x11
RETLW  0x22
RETLW  0x33
沙发
yewuyi| | 2011-5-17 08:59 | 只看该作者
你找到SN_Code[3]在ASM中的位置,看看是否生成了RETLW格式?

调用和定义不要混淆哦

使用特权

评论回复
板凳
allround|  楼主 | 2011-5-18 12:45 | 只看该作者
谢楼上,问题已解决,之前查看是disassembly listing,应该查看program memory就可查到到038之后的039,03a,03b就是下面几条指令了.
RETLW  0x11
RETLW  0x22
RETLW  0x33

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

264

帖子

1

粉丝