DATA SEGMENT
BUFFER DB 12H,4FH,5AH,78H,69H,9FH,52H,0A4H,0F8H,0B2H
COUNT EQU $-OFFSET BUFFER
DATA ENDS
STACK SEGMENT STACK 'STACK'
SAP DB 100H DUP(?)
TOP EQU LENGTH SAP
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOP
MOV CX,COUNT
DEC CX
TOP1: MOV DX,CX
MOV SI,OFFSET BUFFER
TOP2: MOV AL,[SI]
CMP AL,[SI+1]
JLE L1
XCHG AL,[SI+1]
MOV [SI],AL
L1: INC SI
LOOP TOP2
MOV SI,OFFSET BUFFER
MOV CX,DX
LOOP TOP1
MOV CX,COUNT
MOV SI,OFFSET BUFFER
L4: MOV AL,[SI]
MOV DH,AL
SHR AL,1
SHR AL,1
SHR AL,1
SHR AL,1
CMP AL,0AH
JL L2
ADD AL,07H
L2: ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
AND DH,0FH
CMP DH,0AH
MOV DL,DH
JL L3
ADD DL,07H
L3: ADD DL,30H
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
INC SI
LOOP L4
MOV AH,4CH
INT 21H
CODE ENDS
END START
|