📄 04.asm
字号:
data segment
num dw 50 dup(?)
i dw 0
char db 'please input the data',10,13,'$'
char3 db 0dh,'The order of the numbers is:',0ah,0dh,'$'
rec db 5 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset char
mov ah,09h
int 21h
mov si,0
mov bx,0
input:
mov ah,01h
int 21h
cmp al,','
jz write1
cmp al,0dh
jz write2
sub al,30h
mov cl,al
mov ch,00h
mov ax,bx
mov bx,0ah
mul bx
mov bx,ax
add bx,cx
jmp input
write1:
mov [num+si],bx
add si,2
inc i
mov bx,0
jmp input
write2:
mov [num+si],bx
add si,2
inc i
mov dl,0ah
mov ah,02h
int 21h
beforeorder:
mov cx,i
dec cx
loop1:
mov di,cx
mov bx,0
loop2:
mov ax,num[bx]
cmp ax,num[bx+2]
jbe continue
xchg ax,num[bx+2]
mov num[bx],ax
continue:
add bx,2
loop loop2
mov cx,di
loop loop1
initnum:
lea dx,char3
mov ah,09h
int 21h
mov cx,i
mov di,0
loopnum:
mov ax,[num+di]
add di,2
mov bx,10
mov si,4
changenum:
mov dx,0
div bx
mov [rec+si],dl
dec si
cmp ax,0
ja changenum
outputnum:
inc si
mov dl,[rec+si]
add dl,30h
mov ah,02h
int 21h
cmp si,4
jb outputnum
mov dl,20h
mov ah,02h
int 21h
loop loopnum
stop:
mov ah,4ch
int 21h
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -