📄 e411_01.asm
字号:
STACK1 SEGMENT PARA STACK
STACK_AREA DW 100H DUP(?)
STACK_BTM EQU $ - STACK_AREA
STACK1 ENDS
DATA1 SEGMENT
TABLE_LEN DW 20
TABLE DB 20,30,40,10,70,0,1,8,6,15
DB 41H,26,42H,50,60,0FH,2,3,10H,8
RESULT DB 5 DUP(?),20H,'$'
NEW_LINE DB 0DH,0AH,'$'
DATA1 ENDS
CODE1 SEGMENT
ASSUME CS:CODE1,DS:DATA1,SS:STACK1
MAIN PROC FAR
MOV AX,STACK1
MOV SS,AX
MOV SP,STACK_BTM
MOV AX,DATA1
MOV DS,AX
PART1: MOV CX,TABLE_LEN ;输出未排序
MOV SI,OFFSET TABLE
LP1: PUSH CX
MOV CX,5
MOV DI,OFFSET RESULT+4
MOV AL,[SI]
XOR AH,AH
MOV BX,10
LP1_1: XOR DX,DX
DIV BX
OR DL,30H
MOV [DI],DL
DEC DI
LOOP LP1_1
MOV DX,OFFSET RESULT
MOV AH,9
INT 21H
INC SI
POP CX
LOOP LP1
MOV DX,OFFSET NEW_LINE
MOV AH,9
INT 21H
PART2: XOR CX,CX
XOR BX,BX
MOV BX,1 ;排序
MOV CX,TABLE_LEN
DEC CX
MOV SI,OFFSET TABLE
LP2: MOV AL,[SI]
CMP AL,[SI+1]
JAE LP2_1
XCHG AL,[SI+1]
MOV [SI],AL
MOV BX,0
LP2_1: ADD SI,1
LOOP LP2
CMP BX,1
JZ PART3
JMP SHORT PART2
PART3: MOV CX,TABLE_LEN ;输出未排序
MOV SI,OFFSET TABLE
LP3: PUSH CX
MOV CX,5
MOV DI,OFFSET RESULT+4
MOV AL,[SI]
XOR AH,AH
MOV BX,10
LP3_1: XOR DX,DX
DIV BX
OR DL,30H
MOV [DI],DL
DEC DI
LOOP LP3_1
MOV DX,OFFSET RESULT
MOV AH,9
INT 21H
INC SI
POP CX
LOOP LP3
MOV DX,OFFSET NEW_LINE
MOV AH,9
INT 21H
EXIT: MOV AX,4C00H
INT 21H
MAIN ENDP
CODE1 ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -