发布于 2011-04-09 13:09:49
23楼
本程序是为了循环移动而特制的,诸多因素未考虑,运行时将一直循环移位。在模拟软件上设定起始的任意位为1就能看到结果,如果总的位数设定值很大,估计得喝杯茶能看到结果
A M 20.0 //这不是启动位
JC s001
L 1 //移位的位数,这里未用
T #bSNum
L 100 //总的位数。根据设定的数据类型设定任意值
T #bNum
L P#M 100.0 //起始地址
LAR1
L #bNum
L 2
-D
TAR1
+D
LAR1
TAR1 #dwAdd
A [AR1,P#0.1]
= M 19.0 //保存移出的位
L 1
T #bTemp
s001: L #bTemp
L #bNum
JCN end2
LAR1 #dwAdd
A [AR1,P#0.0] //移位
= [AR1,P#0.1]
CLR
= [AR1,P#0.0]
SET
= M 20.0
TAR1
L L#1
-D
LAR1
TAR1 #dwAdd
L #bTemp
+ 1
T #bTemp
L #bNum
JC end2
A M 19.0
= [AR1,P#0.1] //装入缓存位
CLR
= M 20.0
end2: NOP 0
一切皆有可能