📄 lijie32c.asm
字号:
DATA SEGMENT
DSTR DB 23H,45H,0AH,82H,0C2H,65H,8DH,5EH,0B7H,91H,33H,88H,78H,66H,44H,22H
DATAL EQU $-DSTR
P DW DATAL DUP(?)
DATA ENDS
STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
;十个无符号数从大到小排序
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
;======================
MOV SI,OFFSET P
MOV AX,OFFSET DSTR
MOV CX,DATAL
LOPA:MOV [SI],AX
ADD SI,2
INC AX
LOOP LOPA
CALL DISP
;=======================
MOV DX,DATAL-1
ST1: MOV CX,DX
MOV BX,OFFSET P
ST2: MOV SI,[BX]
MOV DI,[BX+2]
MOV AL,[SI]
CMP AL,[DI]
JNC ST3
MOV [BX],DI
MOV [BX+2],SI
ST3: ADD BX,2
LOOP ST2
DEC DX
JNZ ST1
CALL DISP
;========================
MOV AH,4CH
INT 21H
;====DISPLAY=============
DISP PROC NEAR
MOV CX,DATAL
MOV BX,OFFSET P
LOPB:MOV SI,[BX]
MOV AL,[SI]
PUSH CX
MOV CL,4
ROL AL,CL
POP CX
CALL ASCII
MOV AL,[SI]
CALL ASCII
MOV DL,20H
MOV AH,02H
INT 21H
ADD BX,2
LOOP LOPB
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
DISP ENDP
ASCII PROC NEAR
AND AL,0FH
ADD AL,90H
DAA
ADC AL,40H
DAA
MOV DL,AL
MOV AH,02H
INT 21H
RET
ASCII ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -