汇编语言的排序问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 02:15:49
试用冒泡法实现字节数组的排序并输出
(关键是怎么输出数字)

;运行时注意:每个不超过3个字符的十进制数以回车结束,一组十进制数以空格结束,即当输入空格时,就会在屏幕上显示结果。
DSEG SEGMENT
;数据段:在此处添加程序所需的数据
number dw 80 dup (?)
count dw ?
DSEG ENDS

CSEG SEGMENT
assume cs:CSEG, ds:DSEG
MAIN PROC FAR ;主程序入口
mov ax, dseg
mov ds, ax
;此处添加主程序代码
call input;从键盘输入一组十进制数(每个数不超过3个字符),存于数组number中
call sort;将该组数按升序排序
call disp;将结果送显示器显示
;按任意键退出
mov ah,1
int 21h
;程序结束,返回到操作系统系统
mov ax, 4c00h
int 21h
MAIN ENDP

input proc
lea si,number
next: mov bx, 0
mov cx,3
newchar: mov ah, 1;键盘输入,每个数据以回车结束
int 21h
cmp al,20h;全部数据以空格结束
jz tj
sub al, 30h
jl exit ; <0退出
cmp al, 9
jg exit ; >9退出
cbw
xchg ax, bx
mov cx, 10
mul cx
xchg ax, bx
add bx, ax
loop newchar
exit:
call crlf
inc count
mov [si],bx
add si,2
jmp next
tj:ret
in