任务3-输出学生姓名 给出下的程序段,其中数据区存放了若干学生的姓名,请输入学生序号,在屏幕最上面一行输出对应学生的姓名。 assume cs:code, ds:data data segment stu dw stu1,stu2,stu3,stu4,stu5 stu1 db 'Zhang San',0 stu2 db 'Li Si',0 stu3 db 'Wang Wu',0 stu4 db 'Zhao Liu',0 stu5 db 'Qian Er',0 data ends code segment start: mov ax, data mov ds, ax mov ax, 0b800h mov es, ax input: mov ah,1 int 21h ;调用21h中断的第1号功能,从键盘读入字符,AL保存读入字符的ASCII码 sub al, 30h ;相减后,al中保存的ASCII变为数字 ;为0时退出,为1-5时在屏幕最上面一行输出对应人的姓名,输入其他无响应 ;请在程序中加入足量的注释 mov ah,4ch int 21h code ends

时间: 2024-01-16 13:03:49 浏览: 29
这段程序是一个简单的汇编程序,可以实现根据输入的学生序号,在屏幕最上面一行输出对应学生的姓名。 下面是代码注释和解释: ``` assume cs:code, ds:data data segment stu dw stu1,stu2,stu3,stu4,stu5 ; 定义一个包含五个学生姓名的字指针数组 stu1 db 'Zhang San',0 ; 定义五个学生姓名,每个姓名以0结尾 stu2 db 'Li Si',0 stu3 db 'Wang Wu',0 stu4 db 'Zhao Liu',0 stu5 db 'Qian Er',0 data ends code segment start: mov ax, data ; 初始化数据段寄存器 mov ds, ax mov ax, 0b800h ; 初始化显存段寄存器 mov es, ax input: mov ah,1 ; 调用21h中断的第1号功能,从键盘读入字符,AL保存读入字符的ASCII码 int 21h sub al, 30h ; 将读入的字符的ASCII码转换成数字 cmp al, 0 ; 判断是否为0,如果为0则退出程序 je exit cmp al, 5 ; 判断输入的数字是否大于5,如果大于5则不做任何响应 ja input ; 下面是输出对应学生姓名的代码 mov bx, [stu + al * 2] ; 将对应学生姓名的字指针读入BX寄存器 mov si, bx ; 将BX寄存器中的地址赋值给SI寄存器,用于遍历字符串 mov di, 0 ; 初始化DI寄存器,用于显存偏移 output: mov al, [si] ; 将学生姓名中的字符读入AL寄存器 mov ah, 0Ch ; AH寄存器的高4位为字符的显示属性,此处为0C表示白底红字 mov es:[di], ax ; 将字符和显示属性写入显存 inc di ; DI寄存器加1,指向下一个字符 cmp al, 0 ; 判断是否到达字符串结尾 je exit_output ; 如果是则退出 inc si ; SI寄存器加1,指向下一个字符 jmp output ; 继续输出字符 exit_output: jmp input exit: mov ah,4ch int 21h code ends ``` 在这段程序中,首先定义了一个包含五个学生姓名的字指针数组,每个学生姓名以0结尾。然后在程序中使用一个循环来读入输入的字符并将其转换成数字。然后通过比较输入的数字和5的大小,来判断是否需要输出学生姓名。如果需要输出,则通过字指针数组和偏移量来定位到对应学生姓名的首地址,并遍历字符串输出每个字符。最后,程序通过调用21h中断的第4Ch号功能来退出程序。

相关推荐

最新推荐

recommend-type

C语言程序设计实现学生成绩记录簿

通过编写c语言《学生成绩记录簿系统...3)C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。
recommend-type

学生通讯录管理系统-数据结构课程设计.doc

学生通讯录管理系统-数据结构课程设计.doc 纸质通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录所有能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学等管理和分析的一种应用程序。
recommend-type

学生信息管理系统(报告).doc

设计并实现一个学生信息管理系统 ◆建立学生管理系统信息,信息包含学号、姓名、性别、性别、地址...第九个模块——List()实现功能: 能够分页显示数据记录集中的所有记录(每按下一次回车键,显示下 10条记录数据)
recommend-type

c语言作业——学生成绩统计.docx

(3)统计学生成绩分布情况(每个分数段人数); (4)查找最高分、最低分;计算学生成绩均值和方差;并输出这四个结果; (5)判断成绩是否服从正态分布; (6)统计不同生源地学生的平均成绩,按平均成绩排序,并...
recommend-type

微信小程序简单实现form表单获取输入数据功能示例

本文实例讲述了微信小程序简单实现form表单获取输入数据功能。分享给大家供大家参考,具体如下: 1、效果展示 2、关键代码 index.wxml <form bindsubmit="formBindsubmit" bindreset="formReset"> 用户名...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。