sp; LOOP COMPAR ;回路
11: RET ;完成
12: COMPAR2:
13: MOV [SI-2],AX ;交换AH,AL,排序
14: DEC SI ;向低位再查
15: MOV AH,[SI-2]
16: JMP COMPAR1
程式中的回路,对前面有一比较分支不太有利,因为回路每次要17T ,比较分支就是现成的回路,不利用形成浪费。
若把回路改为位置比较,程式即为:
1: MOV CX,SI
2: ADD CX,[SI]
3: INC SI
4: INC SI
5: SUB AL,AL ;先设为最小值,备用
6: COMPAR:
7: MOV AH,AL ;设AH为低位值
8: COMPAR1:
9: LODSB ;取资料
10: CMP SI,CX ;比位置到终点?
11: JAE COMRET ;完成
12: CMP AL,AH ;比大、小
13: JAE COMPAR ;高位大,再查
14: MOV [SI-2],AX ;交换AH,AL,排序
15: DEC SI ;向低位再查
16: MOV AH,[SI-2]
17: JMP COMPAR1
&