微机:写一个简易信息检索系统,在数据区定义msg0-msg9共十条信息,然后从键盘接收0-9的数字,显示相应的信息
时间: 2024-02-16 19:04:59 浏览: 93
好的,以下是一个简易的信息检索系统的程序,可以满足您的需求:
```
.model small
.stack 100h
.data
msg0 db "信息1"
msg1 db "信息2"
msg2 db "信息3"
msg3 db "信息4"
msg4 db "信息5"
msg5 db "信息6"
msg6 db "信息7"
msg7 db "信息8"
msg8 db "信息9"
msg9 db "信息10"
input db ?
msg db 30 dup ('$')
.code
start:
mov ax, @data
mov ds, ax
; 从键盘接收数字
mov ah, 01h
int 21h
sub al, '0' ; 将字符转换为数字
mov input, al
; 检查数字的有效性
cmp input, 0
jb invalid
cmp input, 9
ja invalid
; 显示相应信息
mov dl, input
mov ah, 02h
int 21h
mov dx, offset msg
mov ah, 09h
mov bl, input
mov byte ptr [msg + 2], bl ; 将信息的编号存入msg字符串中
mov byte ptr [msg + 3], ':' ; 冒号分隔符
mov byte ptr [msg + 4], ' '
; 根据输入数字显示相应的信息
cmp bl, 0
je msg0
cmp bl, 1
je msg1
cmp bl, 2
je msg2
cmp bl, 3
je msg3
cmp bl, 4
je msg4
cmp bl, 5
je msg5
cmp bl, 6
je msg6
cmp bl, 7
je msg7
cmp bl, 8
je msg8
cmp bl, 9
je msg9
msg0:
mov dx, offset msg0
jmp print
msg1:
mov dx, offset msg1
jmp print
msg2:
mov dx, offset msg2
jmp print
msg3:
mov dx, offset msg3
jmp print
msg4:
mov dx, offset msg4
jmp print
msg5:
mov dx, offset msg5
jmp print
msg6:
mov dx, offset msg6
jmp print
msg7:
mov dx, offset msg7
jmp print
msg8:
mov dx, offset msg8
jmp print
msg9:
mov dx, offset msg9
print:
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
invalid:
; 输入数字无效,显示错误信息并退出程序
mov dx, offset errmsg
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
errmsg db "输入数字无效!请重新运行程序并输入0-9之间的数字。", 0
end start
```
在上面的程序中,我们首先在数据区定义了10条信息,然后从键盘接收一个数字,如果数字有效,则根据输入数字显示相应的信息。如果输入数字无效,则显示错误信息并退出程序。
需要注意的是,由于我们将信息存储在数据区中,因此在显示信息时,需要根据输入的数字来选择相应的信息,这里使用了一系列的比较和跳转指令来实现。另外,在存储信息的字符串中,我们使用了一个冒号和一个空格来分隔信息的编号和内容,这样可以使显示的信息更加清晰易懂。
希望这个程序能够满足您的需求。
阅读全文