作者在 2009-05-30 15:30:15 发布以下内容
编程实现将AREA1为首地址的10个字节单元数据搬移到以AREA2为首地址的内存中去,并按从小到大排序
DATA SEGMENT
AREA1 DB 04H,01H,02H,07H,0AH,05H,06H,03H,08H,09H
AREA2 DB 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET AREA1
MOV DI,OFFSET AREA2
MOV CX,10
AGAIN: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ AGAIN
MOV CX,0AH
DEC CX
OUTLP: MOV DX,CX
MOV BX,OFFSET AREA2
INLP: MOV AL,[BX]
CMP AL,[BX+1]
JNA NEXT
XCHG AL,[BX+1]
MOV [BX],AL
NEXT: INC BX
DEC DX
JNZ INLP
LOOP OUTLP
AREA1 DB 04H,01H,02H,07H,0AH,05H,06H,03H,08H,09H
AREA2 DB 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET AREA1
MOV DI,OFFSET AREA2
MOV CX,10
AGAIN: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ AGAIN
MOV CX,0AH
DEC CX
OUTLP: MOV DX,CX
MOV BX,OFFSET AREA2
INLP: MOV AL,[BX]
CMP AL,[BX+1]
JNA NEXT
XCHG AL,[BX+1]
MOV [BX],AL
NEXT: INC BX
DEC DX
JNZ INLP
LOOP OUTLP
MOV AH,4CH
INT 21H
CODE ENDS
END START
INT 21H
CODE ENDS
END START