汇编语言,编写一个程序对合格的人和不合格
时间: 2023-06-13 19:03:47 浏览: 53
的人进行分类。
假设有一个人员名单,每个人的信息包括姓名、年龄和身高。我们可以通过编写一个汇编程序来读取每个人的信息,并根据一些规则来判断他们是否合格。以下是一种可能的实现方式:
```
section .data
; 定义人员信息表,每个人包含姓名、年龄和身高三个字段
person1 db "张三", 20, 170
person2 db "李四", 25, 180
person3 db "王五", 30, 165
section .text
global _start
_start:
; 读取第一个人的信息
mov esi, person1
call check_person
; 读取第二个人的信息
mov esi, person2
call check_person
; 读取第三个人的信息
mov esi, person3
call check_person
; 程序结束
mov eax, 1
xor ebx, ebx
int 0x80
; 判断一个人是否合格的函数
check_person:
; 读取姓名、年龄和身高三个字段
mov eax, [esi]
mov ebx, [esi + 4]
mov ecx, [esi + 8]
; 判断年龄是否在 18 到 35 岁之间
cmp ebx, 18
jl not_qualified
cmp ebx, 35
jg not_qualified
; 判断身高是否在 160 到 180 厘米之间
cmp ecx, 160
jl not_qualified
cmp ecx, 180
jg not_qualified
; 如果通过了以上两个条件,则判断为合格
mov eax, 4
mov ebx, 1
mov ecx, qualified_msg
mov edx, qualified_msg_len
int 0x80
ret
; 不合格的处理函数
not_qualified:
mov eax, 4
mov ebx, 1
mov ecx, not_qualified_msg
mov edx, not_qualified_msg_len
int 0x80
ret
section .data
qualified_msg db "合格", 0xA
qualified_msg_len equ $ - qualified_msg
not_qualified_msg db "不合格", 0xA
not_qualified_msg_len equ $ - not_qualified_msg
```
上述程序使用 `person1`、`person2` 和 `person3` 三个变量存储人员信息,分别是姓名、年龄和身高。在 `_start` 函数中,依次调用 `check_person` 函数来检查每个人是否合格。`check_person` 函数首先读取姓名、年龄和身高三个字段,然后分别与规定的范围进行比较,如果符合要求,则输出 "合格",否则输出 "不合格"。最后,在 `not_qualified` 函数中,输出 "不合格" 的提示信息。
需要注意的是,上述程序仅为一种简单的实现方式,实际的应用场景可能会更加复杂。例如,可能需要从文件中读取人员信息,或者需要根据更多的规则来判断一个人是否合格。在编写汇编程序时,需要根据实际情况进行调整和改进。
相关推荐
![](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)