由于AT90S1200 没有LPM 指令,比较有效的方法是将一个较小的常数表放置在EEPROM 中
你可以使用EEPROM 地址寄存器和EEPROM 数据寄存器有效地直接访问常数表
如
.ESEG 定义EEPROM 段
.db my_var00=$45
.db my_var01=$4c
.db my_var02=$5f
.CSEG 定义通用代码段
如果你的表不适合于放置在EEPROM 中你可以象下面这样放置在FLASH 中
.def tp =r16 表指针表索引
.def output=r17 输出表的中常数
table
ldi output,$45
cpi tp,01
breq end
ldi output,$4c
cpi tp,02
breq end
ldi output,$5f
cpi tp,03
breq end
end
ret
为了访问表中的2 号元素可以这样做
ldi tp 2
rcall table
当从表格子程序返回时“output”将包括“$4c”
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。