用汇编语言在debug的环境下编写人名排序程序代码。 从键盘接收十个人名,人名由4-8个字母构成。 按首字母上升次序显示所输入的人名,每一个人名占一行。
时间: 2024-03-17 07:44:48 浏览: 50
好的,我会尽力回答你的问题。
以下是用汇编语言在debug的环境下编写人名排序程序代码的示例代码:
```
; 将十个人名存储在名字数组中
names db 10 dup(8) ; 存储10个长度为8的人名
count db 10 ; 存储人名的数量
; 定义字符串输入函数
getstr proc near
push ax bx cx dx
mov cx, 0
mov ah, 01h ; 读取一个字符
int 21h
cmp al, 0dh ; 如果是回车键,则退出
je done
mov [si], al ; 存储字符
inc si
inc cx
jmp getstr
done:
mov [si], 0 ; 字符串结束符
pop dx cx bx ax
ret
getstr endp
; 主程序
main:
mov si, offset names ; 存储输入的人名
mov cl, count ; 存储人名的数量
; 循环读取人名
mov cx, 0
mov ah, 09h ; 显示字符串
mov dx, offset prompt
int 21h
call getstr
mov [si], '$' ; 添加字符串结束符
add si, 8 ; 每个人名占8个字节
inc cx
cmp cx, count
jl main
; 排序
mov si, offset names ; 从头开始比较
outer:
mov di, si ; 保存当前位置
inner:
mov al, [si] ; 获取当前人名的首字母
add si, 8 ; 移动到下一个人名
cmp [si], 0 ; 判断是否为最后一个人名
je done
cmp al, [si] ; 将当前人名的首字母与下一个人名的首字母进行比较
jbe inner ; 如果当前人名的首字母小于等于下一个人名的首字母,则继续比较
xchg [di], [si] ; 交换当前人名和下一个人名的位置
mov di, si ; 更新当前位置
jmp outer ; 继续比较
done:
; 显示排序后的人名
mov si, offset names ; 从头开始显示
mov cx, count
mov ah, 09h ; 显示字符串
mov dx, offset result
int 21h
mov dx, offset newline
int 21h
loop display
; 退出程序
mov ah, 4ch ; 退出程序
int 21h
prompt db '请输入人名(4-8个字母):$', 0
result db '排序后的人名为:', 0
newline db 0dh, 0ah, '$'
```
以上是示例代码,您可以根据自己的需求进行修改。请注意,汇编语言的语法和规范可能因不同的平台而有所不同,因此请根据您使用的环境进行相应的调整。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)