形式,即可简单明瞭地完成任务。
1: COMPAR:
2: MOV AH,AL ;设AH为低位值
3: COMPAR1:
4: LODSB ;取资料
5: CMP AL,AH ;比大、小
6: JAE COMPAR ;高位大,不变
7: MOV [SI-2],AX ;交换AH,AL,排序
8: DEC SI ;向低位再查
9: MOV AH,[SI-2]
10: JMP COMPAR1
当然,上面这段程式并不成立,因为没有出口,永远做不完。程式的终止有很多方法,一是用计数器,一是用位置来比较,也有用终止指令的,不一而足,各有长短。
首先,假设在DS:SI 中,有一长度值,兹以计数器的回路来试试看:
1: LODSW
2: MOV CX,AX ;似此,3B 18C
;若用 MOV CX,[SI]
; INC SI
; INC SI
;则需 6B,21T
3: SUB AL,AL ;先设最小值,备用
4: COMPAR:
5: MOV AH,AL ;设AH为低位值
6: COMPAR1:
7: LODSB ;取资料
8: CMP AL,AH ;比大、小
9: JB COMPAR2 ;低位大,需排序
10: &nb