8086人名排序,要求从键盘输入人名
时间: 2023-07-21 15:35:26 浏览: 66
下面是一个使用8086汇编语言编写的程序,可以从键盘输入人名并对其进行排序:
```
.model small
.stack 100h
.data
names db 10, 0
db 10 dup ('$')
num_names db 0
newline db 0Dh, 0Ah, '$'
.code
mov ax, @data
mov ds, ax
; read in names from keyboard
mov ah, 0Ah
lea dx, names
int 21h
; calculate number of names
mov al, names
sub al, '0'
mov num_names, al
; bubble sort names
mov bx, 1
outer_loop:
mov cx, num_names
dec cx
inner_loop:
mov si, bx
add si, si
mov di, si
inc di
mov al, names[si]
cmp al, names[di]
jbe next_iteration
mov dl, names[di]
mov names[si], dl
mov names[di], al
next_iteration:
dec cx
jnz inner_loop
inc bx
cmp bx, num_names
jb outer_loop
; print sorted list of names
lea dx, newline
mov ah, 09h
int 21h
mov cx, num_names
mov bx, 2
print_loop:
mov ah, 09h
mov dx, offset names[bx]
int 21h
lea dx, newline
int 21h
add bx, 11
loop print_loop
; exit program
mov ax, 4C00h
int 21h
end
```
这个程序使用冒泡排序算法对从键盘输入的人名进行排序。程序首先使用`int 21h`中断从键盘读取人名,并计算人名的数量。然后,程序使用冒泡排序算法对人名进行排序,最后通过`int 21h`中断打印出排序后的人名列表。请注意,人名的最大长度为10个字符。