原创
真晕,发现AVR Instruction Set上的所有字操作指令的Summary与详细格式不一致
前两天用WinAVR写汇编代码的精确延迟程序, 看着AVR Instruction Set(版本号:Rev.0856E-AVR-11/05,目前仍为Atmel官方网站最新下载版本,updated:11/05)的格式写了如下一条指令:
adiw r25:r24,1
编译出错,仔细看了手册发现,在Instruction Set Summary上的指令格式为:
adiw Rd,K
而在adiw指令详细介绍上的格式却为:
adiw Rd+1:Rd,K
而WinAVR(avr-as)支持前一种格式。
本来我修改了,在WinAVR正常运行也没什么了,但今天在将一段代码从AVRStudio上转换为WinAVR代码时,发现AVRStudio竟然是使用后一种格式的。本来汇编指令应该是一种标准的格式,这下搞得各自为政了。
我也仔细看了一下,在这个版本的指令手册上,所有的字操作指令都存在这一问题,再如movw指令,在Summary上的是:
movw Rd,Rr
但在详细介绍中却是:
movw Rd+1:Rd, Rr+1,Rr
在编译器中,同样是avr-as支持前一种,AVRStudio支持的是后一种。
文章评论(0条评论)
登录后参与讨论