打印

编程问题求助

[复制链接]
1721|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

粉丝