标题:
关于查表
[打印本页]
作者:
xueqixuan
时间:
2008-3-7 01:34
标题:
关于查表
请问TBL查表指令的索引寻址范围不能大于16吗?
作者:
strongchen
时间:
2008-3-7 10:11
如果用A、B或D寄存器的值做偏移量,应该可以得到更大的寻址范围。
作者:
xueqixuan
时间:
2008-3-7 11:14
为什么我用A寄存器的值做偏移量结果就不对了呢
作者:
strongchen
时间:
2008-3-7 11:40
程序中寄存器A的值是否改变?
作者:
xueqixuan
时间:
2008-3-7 15:07
值改变了,可是结果不对,不知道为什么
作者:
strongchen
时间:
2008-3-7 15:38
把你的程序贴出来看看?
作者:
xueqixuan
时间:
2008-3-7 15:46
明白了,我的表里是字数据,得把A寄存器里的值乘2再作为偏移地址,不过这样的话A寄存器的偏移地址必须小于128,否则乘2会溢出,可是我想寻址偏移量256的表该怎么办?
作者:
strongchen
时间:
2008-3-7 15:49
用寄存器D作偏址。
作者:
xueqixuan
时间:
2008-3-7 16:14
那样不是会改寄存器B了吗?
作者:
strongchen
时间:
2008-3-7 16:20
是的。可以先压栈保存一下,然后再释放。
作者:
xueqixuan
时间:
2008-3-7 16:34
没有明白,不是得先把B寄存器设置好吗?如果压栈再出栈的话还是会把B的值改为原来的值啊,版主能不能再解释一下呢?
这是我的程序
asm{
LDD #33639
ASLA
LDX $3002
ETBL A,X
}
作者:
strongchen
时间:
2008-3-10 11:25
对,用TBL或ETBL时不能再用B寄存器进行寻址了。应该用查表的起始地址直接寻址,而不能采用大于128的偏址寻址。这应该是可以做到的。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0