发布于 2012-12-05 22:08:26
10楼
楼主:你自己测试,并发现错误的位置,这很好。那么程序怎么就出错了呢?就以你的程序为例分析一下吧:
L 100
T MD 800
OPN DB21
L DBW [MD 800]
出错原因分析:MD800里面的内容是100,[MD 800]对应于指针是P#12.4,那么DBW[MD 800]就是DBW12.4,显然DBW12.4寻址方式是非法的,所以CPU会STOP;
问题解决方法:可以直接把L 100 修改成L 800;或者在L 100后面添加一条语句SLD3(左移三位);这样寻址就不会出错了,就能得到你想要的地址了。
个人建议:楼主可以学习或者复习一下官方的间接寻址资料,特别是32位存储器间接寻址。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”