新闻  |   论坛  |   博客  |   在线研讨会
在AT90S1200 中如何实现常数表功能?
tvb2058 | 2007-12-04 14:46:14    阅读:2013   发布文章

由于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”

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客