寻址请教

[复制链接]
1628|2
手机看帖
扫描二维码
随时随地手机跟帖
xwwxuehan|  楼主 | 2007-6-30 14:04 | 显示全部楼层 |阅读模式
现查表后得到的表格低位值存入DISP_ADDR,假设查表得该低位值为0AH.
现在我要把另一值(如SEC_L=05H),存入到该低位值单元即0AH单元.
如下代码好像不能实现,请教各位大虾,这样做有什么问题及如何实现之?谢谢.(我做的是一个通用的显示LCD程序,即把对应的显示位置(根据LCD RAM的$300H和偏移量)放入一个ROM表格中,不过偏移量最多为0FH).再此谢谢.

LIST P=66P12

DISP_ADDR    EQU   25H          ;查表得显示位置值暂存
SEC_L        EQU   26H          ;

...
CALL  TIME_TAB                  ;查表
STA   DISP_ADDR                 ;查表低位(AC)存至DISP_ADDR

LDI   SEC_L,05H                 ;
LDA   DISP_ADDR,00H             ;查表所得显示位置值存入AC
LDA   SEC_L,06H                 ;存入30AH单元     

;表格
      ORG 7DF
TIME_TAB:
      TJMP
      RTNW ....,....
      ...
warm_ice| | 2007-7-2 09:46 | 显示全部楼层

这样的

应该是这样的,可以实现,但是,这条
LDA   SEC_L,06H                 ;存入30AH单元 
应该为
STA  才对

我想思路是这样的,主要是用间接寻址方式来做,用DPH,DPM,DPL及INX,用3个临时寄存器T1,T2,T3,赋初值,如300H开始的话,要赋值600H(因为DPH,DPM为3位,这个要注意)然后,根据查表得到的数据,加到T1(代替DPL)上,带进位加到T2,T3(此处要特别处理,因为DPH,DPM为3位),等到的数据存回DPH,DPM,DPL即可.

得到的地址,再将要写入的数据调入INX中即可.

使用特权

评论回复
xwwxuehan|  楼主 | 2007-7-2 14:57 | 显示全部楼层

呵呵,我用的INX解决了.

谢谢解答.那天贴上去后,我就用到INX实现了,呵呵,谢谢warm_ice.

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝