📄 binarychange.asm
字号:
DATAS SEGMENT
;此处输入数据段代码
array dw 10 dup(?)
temp dw ?
string1 db 'please input ten numbers',13,10,'$'
string2 db 'Now the sorting resuelt is :',13,10,'$'
RESULT DB 5 DUP(?)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码据段代码
lea si,array
lea dx,string1
mov ah,09h ;输入第一条提示
int 21h
mov cx,10
sort1:
call DECIN
add si,2
mov ah,02h
mov dl,13
int 21h
mov dl,10
int 21h
LOOP SORT1
lea dx ,string2
mov ah,09h ;输入第二提示
int 21h
mov cl,0
sort2:
mov ch,9
sub ch,cl
mov si,0
sort3:
mov ax ,array[si]
cmp array[si+2],ax
ja exit2
xchg array[si+2],ax
mov array[si],ax
exit2:
add si,2
dec ch
jnz sort3
inc cl
cmp cl,9
jl sort2
mov si ,0
mov cx,10
lea dx ,string2
mov ah,09h ;输入第二提示
int 21h
sort4:
call decout
add si,2
mov ah,02h
mov dl,10
int 21h
loop sort4
DECIN PROC NEAR ;输入一个十进制数
push ax
push bx
push cx
push dx
MOV BX,0
DIL1:MOV AH,01H
INT 21H
CMP AL,13
JZ DIEXIT
AND AL,0FH
MOV AH,0
XCHG AX,BX
MOV CX,10
MUL CX
ADD BX,AX
JMP DIL1
DIEXIT:MOV [si],BX
pop dx
pop cx
pop bx
pop ax
RET
DECIN ENDP
DECOUT PROC NEAR
push ax
push bx
push cx
push dx
MOV AX,array[si]
MOV CX,5
MOV BX,0
DOL0: MOV RESULT[BX],0
INC BX
LOOP DOL0
MOV BX,0
MOV DX,0
MOV CX,10
DOL1:DIV CX
MOV RESULT[BX],DL
INC BX
CMP AX,0
JZ DOPR
MOV DX,0
JMP DOL1
DOPR:MOV DL,RESULT[BX]
OR DL,30H
MOV AH,02H
INT 21H
DEC BX
CMP BX,-1
JZ DOEXIT
JMP DOPR
DOEXIT:
pop dx
pop cx
pop bx
pop ax
RET
DECOUT ENDP
MOV AH,4CH
INT 21H
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -