用汇编语言写一个简易信息检索系统,在数据区定义msg0-msg9共十条信息,然后从键盘接收0-9的数字,显示相应的信息
时间: 2024-02-16 11:03:54 浏览: 104
好的,以下是一个简单的汇编语言实现信息检索系统的示例代码:
```
.model small
.stack 100h
.data
msgs db 'msg0', 'msg1', 'msg2', 'msg3', 'msg4', 'msg5', 'msg6', 'msg7', 'msg8', 'msg9'
index db ?
prompt db '请输入一个数字(0-9): $'
invalid db '输入无效!$'
output db '信息: $'
.code
mov ax, @data
mov ds, ax
mov ah, 09h
lea dx, prompt
int 21h
mov ah, 01h
int 21h
sub al, 30h ; 将 ASCII 码转换为数字
cmp al, 0
jl invalid ; 如果小于 0,则输入无效
cmp al, 9
jg invalid ; 如果大于 9,则输入无效
mov bl, al
mov ah, 09h
lea dx, output
int 21h
lea dx, msgs[ebx*4]
int 21h
mov ah, 4ch
int 21h
invalid:
mov ah, 09h
lea dx, invalid
int 21h
mov ah, 4ch
int 21h
```
在这个程序中,我们首先在数据区定义了一个字符串数组 `msgs`,其中包含了十条不同的信息。我们还定义了一个 `index` 变量来保存从键盘读取的数字。
然后,我们使用 DOS 中断 21h 的 09h 功能来输出提示信息,使用 01h 功能来读取从键盘输入的数字。接着,我们将 ASCII 码转换为数字,并检查其是否在有效的范围内。如果输入无效,我们将输出一条错误信息。
如果输入有效,我们将使用 `ebx` 寄存器来计算要输出的信息的偏移量,并使用 DOS 中断 21h 的 09h 功能来输出该信息。最后,我们使用 DOS 中断 21h 的 4ch 功能来退出程序。
希望这个示例代码能够帮到你!
阅读全文