汇编键盘输入一组数据从大到小排序
时间: 2023-08-12 16:19:14 浏览: 115
好的,下面是汇编代码:
```
.model small
.stack 100h
.data
prompt db '请输入10个数字:', 0
arr db 10 dup(0)
.code
main proc
mov ax, @data
mov ds, ax
lea dx, prompt
mov ah, 9
int 21h ; 输出提示信息
mov cx, 10 ; 循环10次输入
lea di, arr
input_loop:
mov ah, 1
int 21h ; 读入一个字符
cmp al, 0dh ; 如果是回车键,退出输入循环
je input_done
sub al, 30h ; 将字符转换成数字
mov [di], al ; 将数字存入数组
inc di
loop input_loop
input_done:
mov cx, 9 ; 冒泡排序
lea di, arr
mov bx, cx
sort_loop:
mov cx, bx
lea si, arr
inner_loop:
mov al, [si]
cmp al, [si+1]
jg swap
inc si
loop inner_loop
jmp next
swap:
mov al, [si]
mov ah, [si+1]
mov [si], ah
mov [si+1], al
next:
loop sort_loop
lea dx, arr
mov ah, 9
int 21h ; 输出排序后的数组
mov ah, 4ch
int 21h ; 结束程序
main endp
end main
```
这段代码使用冒泡排序算法,首先输入10个数字,然后进行冒泡排序,最后输出排序后的数组。请注意,这段代码是基于 DOS 系统的,如果在 Windows 上运行可能会出现问题。
阅读全文