编程问题求助

[复制链接]
2243|3
 楼主| shookay 发表于 2009-11-2 13:55 | 显示全部楼层 |阅读模式
下面这段程序:
             STM  X, AR1
             STM  #3, AR2
LOOP: ADD  *AR1+, A
             BANZ  LOOP, *AR2-
最后一句为什么是*AR2-,我觉得应该是AR2-,,因为AR2=3,一共循环4次,*AR2-意味着(AR2)-,也就是用寻址地址是3的数,就不是3了,应该是AR2是用作循环变量,所以最后一句我觉得应该是BANZ  LOOP, AR2-,但这里用了*AR2作循环变量,*AR2是访问AR2存放数寻址内存的内容的,我查了不同书上的很多程序都是BANZ  LOOP, *AR2-,不是BANZ  LOOP, AR2-,请问这是为什么?
aresc 发表于 2010-1-6 21:22 | 显示全部楼层
这段程序逻辑也是对的。用AR2间接寻址,首先从地址3开始,如果地址3所存的数据非0,就接着做循环,然后AR2 = AR2 - 1,...

但具体做多少次循环由内存里的值第一个0值决定。
碧血黄花 发表于 2010-1-7 10:23 | 显示全部楼层
我很少用AR去寻址,一般是自己定义一个变量,个人习惯吧
你直接调试下不就行了,看哪段语句对的,这么看我是看不大出来
代码不是看的是调试的好不?能一眼看出代码问题的,是高手中的高手
lujun1013 发表于 2010-1-8 16:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部