从另一个角度比较AVR和PIC

2020-02-08 09:18发布


关于AVR和PIC比较的帖子很多,大都是从性能、外设、开发方便、可靠性等角度进行比较,今天我从另外一个角度比较一下二者,,,


那就是:谁的汇编编程对程序员更友好???

我认为PIC的汇编对程序员更友好,指令条数少是一个方面,但还有很重要的一点,那就是:
AVR的指令只能对通用寄存器R0——R31进行操作,存储在RAM里面的操作数必须得先LOAD出来才能进行运算,而运算结果还是在通用寄存器中,还得用Store指令将其放回到内存RAM中去。而PIC完全不存在这个问题。。他的运算指令都可以直接对存储在RAM中的变量直接进行运算。。。

如果是用C语言编程的话,这肯定不是一个问题,可是用汇编编程的话,每次进行运算都要进行一两次Load和一次Store,实在是不爽。。。

当然,这并不是AVR自己的问题,ARM中最强大的指令也是一大堆的Load和Store,,还有身为CISC的8051单片机,对于存储在64K RAM存储空间的操作数,也不能直接操作,必须先MOVX。。。。


当然,也许会有人说:为什么不用C呢?用C不就没有这些问题了吗???

当然,绝大多数情况肯定是推荐用C的,其实我也很少写汇编,写的程序基本上都是C的,但是,对于PIC10、PIC12、ATtiny这样的内存空间非常少的片子,我想用汇编还是非常有必要的。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Niandet
1楼-- · 2020-02-08 10:23
ARM里面也有Load/Store,貌似精简指令集的都必须有,降低核心面积,带来的是价格的下降和效率的提高。
XIVN1987
2楼-- · 2020-02-08 10:27
当然,PIC需要非常烦人的分页,,,,,这个的确对汇编编程者非常不友好。。。
XIVN1987
3楼-- · 2020-02-08 16:01
Niandet 发表于 2012-4-15 18:31
ARM里面也有Load/Store,貌似精简指令集的都必须有,降低核心面积,带来的是价格的下降和效率的提高。 ...

“貌似精简指令集的都必须有”

貌似没有必然联系:PIC是RISC,可是没有LOAD/STORE;8051是CISC,可却又Load/Sore——虽然叫MOVX,其实一回事儿。。。
无级电工
4楼-- · 2020-02-08 20:29
 精彩回答 2  元偷偷看……

一周热门 更多>