用emu8086编写例程要求从键盘输入10个无符号数,并按从小到大进行排序
时间: 2024-02-18 14:00:19 浏览: 164
以下是用emu8086编写的从键盘输入10个无符号数,并按从小到大排序的例程:
```
org 100h
section .data
; 定义变量
numbers db 10 dup(0)
section .text
mov cx, 10 ; 循环10次输入
input_loop:
mov ah, 01h ; 从键盘读取一个字符
int 21h
sub al, '0' ; 将字符转换为数字
cmp al, 0 ; 如果输入的不是数字,跳过
jl input_loop
jg input_ok
jmp input_loop
input_ok:
mov [numbers+cx-1], al ; 将数字存入数组
loop input_loop
; 冒泡排序
mov cx, 9
outer_loop:
mov si, 0
inner_loop:
cmp [numbers+si], [numbers+si+1] ; 比较相邻两个数
jle not_swap
xchg [numbers+si], [numbers+si+1] ; 如果前者大于后者,交换两个数
not_swap:
inc si
loop inner_loop
loop outer_loop
; 输出结果
mov ah, 09h
mov dx, offset numbers
int 21h
; 程序结束
mov ah, 4ch
int 21h
```
在程序中,首先定义了一个长度为10的数组 `numbers` 用于存储输入的数字。然后使用循环从键盘读取10个字符,并将其转换为数字存入数组中。最后使用冒泡排序算法将数组按从小到大排序,并输出结果。
阅读全文