在数据区中,有10个不同的信息,编号分别为0—9,每个信息包括30个字符,编制一个程序,从键盘接收0—9之间的一个编号,在屏幕上显示出相应编号的信息。给出汇编语言代码
时间: 2024-03-22 15:38:45 浏览: 30
好的,下面是一个实现该功能的汇编语言代码:
```
.MODEL small
.STACK 100h
.DATA
; 定义10个信息,每个信息包括30个字符
info0 db "这是0号信息,长度为30", 0
info1 db "这是1号信息,长度为30", 0
info2 db "这是2号信息,长度为30", 0
info3 db "这是3号信息,长度为30", 0
info4 db "这是4号信息,长度为30", 0
info5 db "这是5号信息,长度为30", 0
info6 db "这是6号信息,长度为30", 0
info7 db "这是7号信息,长度为30", 0
info8 db "这是8号信息,长度为30", 0
info9 db "这是9号信息,长度为30", 0
.CODE
MAIN PROC
; 显示提示信息
MOV AH, 09H
LEA DX, PROMPT
INT 21H
; 读取用户输入的编号
MOV AH, 01H
INT 21H
SUB AL, '0' ; 将字符转换为数字
; 检查输入是否合法
CMP AL, 0
JL INVALID_INPUT
CMP AL, 9
JG INVALID_INPUT
; 显示相应的信息
MOV AH, 09H
LEA DX, INFO_TABLE + AL * 30
INT 21H
; 程序结束
MOV AH, 4CH
INT 21H
INVALID_INPUT:
; 显示错误信息并重新读取输入
MOV AH, 09H
LEA DX, ERROR_MESSAGE
INT 21H
JMP MAIN
; 定义数据区
PROMPT DB "请输入0到9之间的一个数字:$"
ERROR_MESSAGE DB "无效的输入,请重新输入!$"
INFO_TABLE DD OFFSET info0, OFFSET info1, OFFSET info2, OFFSET info3, OFFSET info4, OFFSET info5, OFFSET info6, OFFSET info7, OFFSET info8, OFFSET info9
MAIN ENDP
END MAIN
```
程序先定义了10个信息,然后在代码区的主程序中,首先显示提示信息,然后读取用户输入的编号并将其转换为数字格式。接着检查输入是否合法,如果不合法则显示错误信息并重新读取输入,如果合法则显示对应的信息。最后程序结束。
需要注意的是,汇编语言的输入和输出都是通过中断来实现的,这里使用的是21h号中断。具体的操作可以查看相关文档。