打印
[AVR单片机]

AVR如何来处理@A+DPTR的寻址

[复制链接]
2667|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
limee|  楼主 | 2007-1-3 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     MOV    DPTR, #NUMS    ; point to first byte
     MOVC   A, @A+DPTR    ; get a data byte
     ......
NUMS:    
     DB    4EH, 0C9H, 21H, 9AH, 0    ; sample data to print

我用r10来代替累加器A, (其中A是一个可变数)
写的AVR代码却出现了错误
LDD r11, Z + r10    ; error 
应该如何处理呢?

相关帖子

沙发
NE5532| | 2007-1-3 11:52 | 只看该作者

做不到,算了再查

使用特权

评论回复
板凳
NE5532| | 2007-1-3 11:55 | 只看该作者

如下,查到的数保存在R1中,

clr    R3            ;Used For ADC Instruction
ldi    ZL,<crc_tab
ldi    ZH,>crc_tab
add    ZL,R1
adc    ZH,R3
lpm
mov    R1,R0

使用特权

评论回复
地板
zsmbj| | 2007-1-3 12:46 | 只看该作者

如此:

ldi zl,low(2*NUMS)
ldi zh,high(2*NUMS)
lpm r16,z+
……

使用特权

评论回复
5
NE5532| | 2007-1-3 13:21 | 只看该作者

楼上的,你的R16只是指名读入的寄存器位置罢了

楼主要的是“基地址+偏移地址”的查表方法



使用特权

评论回复
6
maychang| | 2007-1-3 15:22 | 只看该作者

NE5532正解

使用特权

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

本版积分规则

301

主题

475

帖子

0

粉丝