PIC汇编转C时 发现C编译器不给力

2020-02-06 09:48发布

本帖最后由 woshigeshuai 于 2019-4-24 09:45 编辑

                C程序
                ram20^=4;
                if((RB0==1) && (ram20&BIT(3)==0))
                {
                        if(ram29<0X9A)
                                ram29++;
                        if(ram29>=0x9c)
                                ram29--;                        // need test
                        ram20|=BIT(3);
                }
               
                实际运行的,第二个判断条件居然没有
                 movlw   4
                xorwf   byte_DATA_24, f

                btfss   PORTB, RB0
                 bcf     byte_DATA_24, 3
                movfw   byte_DATA_29
                xorlw   9D
                bnz     loc_CODE_23F

                ; ---------------------------------------------------------------------------------------
                测试使用下面的方法可以

                ram20^=4;
                if(RB0==1 && ram203==0)
                {
                        if(ram29<0X9A)
                                ram29++;
                        if(ram29>=0x9c)
                                ram29--;                        // need test
                        ram20|=BIT(3);
                }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
woshigeshuai
1楼-- · 2020-02-07 21:44
mon51 发表于 2019-4-29 11:36
抨击C有问题的人,都发现是菜鸟。

是的,被括号坑过好多次,这一次还是被坑了
ycheng2004
2楼-- · 2020-02-08 01:35
PIC的汇编写的多吗?
最近接触,发现很难写,指令有点奇扒
如查表等等,还是用C方便,但有些MCU的ROM空间又非常小,
yoursnemo
3楼-- · 2020-02-08 03:53
nanfang2000 发表于 2019-4-24 10:25
哈哈,除非到大师级自信,先不要怀疑编译器和CPU有bug

有大师级的自信不够,还要有一点真正的水平。

哎,吐槽下:遇到太多人,一有问题,就说C编译器和CPU有bug,赶紧给他解决和赔偿...被指正出来,嘴巴比金刚石还硬死不承认.
wildcat7261
4楼-- · 2020-02-08 05:46
ycheng2004 发表于 2019-7-10 11:13
PIC的汇编写的多吗?
最近接触,发现很难写,指令有点奇扒
如查表等等,还是用C方便,但有些MCU的ROM空间又非常 ...

PIC低端MCU系列是我见过汇编指令集最少的MCU(35条指令),程序存储长度还不是按8位来的。
lxk52000
5楼-- · 2020-02-08 10:18
 精彩回答 2  元偷偷看……

一周热门 更多>