L#DB_No
TLW22
OPNDB[LW22]
L#DAta1
TDBW0
L#Data2
TDBW2
L#Data3
TDBW4
L#Data4
TDBW6
L#Data5
TDBW8
L#Data6
TDBW10
L#Data7
TDBW12
L#Data8
TDBW14
L#Data9
TDBW16
L#Data10
TDBW18
L0
SLD3
TLD10//地址1
L2
SLD3
TLD14//地址2
L#Num
L1
-I
NEX1:T#seq1
L#seq1
NEX2:T#seq2
LLD10
LAR1
LLD14
LAR2
LDBW[AR1,P#0.0]
LDBW[AR2,P#0.0]
<I
=L18.0
AL18.0
JNBm001
LDBW[AR1,P#0.0]
T#TempVaLUe
m001:NOP0
AL18.0
JNBm002
LDBW[AR2,P#0.0]
TDBW[AR1,P#0.0]
m002:NOP0
AL18.0
JNBm003
L#TempValue
TDBW[AR2,P#0.0]
m003:NOP0
LLD14
+L#16
TLD14
L#seq2
LOOPNEX2
LLD10
+L#16
TLD10
LLD10
+L#16
TLD14
L#seq1
LOOPNEX1
以上是程序代码,内循环理解些了,外循环什么时候用?为什么加16呢?麻烦详细解释一下,特别是M03之后的部分。3Q
问题补充:
非常详细,基本明白了。为什么加16呢?是1个字的宽度吗?
最佳答案
之前的回答有误:
这个程序的意思是,执行第一次内循环时就是将第一个数依次与其他的数据进行比较第一数比其他的数小就调换数据,这个时候就将最大的一个数排到了第一的位置,第二次内循环的时候就要开始从第二个数开始了,所以就有了,LD10和LD14都要重新赋值的程序了,要注意LD14在内循环的时候也有自加16的数值,因为LD10的数值只在外循环前加上16,然后在赋值为LD14。
内循环的作用就是逐个比较,而外循环的作用就是保证这样的比较能够顺利的进行下去。
之前的回答不对,内循环和外循环应该是在一个周期内完成;
加16就是代表一个字的宽度,
提问者对于答案的评价:
还有一点不明白,为什么自加16呢?是1个字的宽度吗?
最佳答案作者回复:
是的,再看看我修改后的解释吧,之前解释的有点问题,这个排序和我自己写的不太一样。加个企鹅吧,再给你解释解释。283595951