使用8086汇编语言 输入一组不超过30个的字符串,在屏幕上输出
时间: 2023-06-11 14:10:43 浏览: 195
8086汇编语言
以下是一个使用8086汇编语言的程序,可以输入一组不超过30个的字符串,并在屏幕上输出:
```
.model small
.stack 100h
.data
str_arr db 30, 0 ; 字符串数组,最大长度为30
str_len db ? ; 字符串长度
str db 80, 0 ; 缓冲区,用于读入字符串
prompt db 'Enter a string: $'
output db 'You entered: $'
.code
main proc
mov ax, @data ; 初始化数据段寄存器
mov ds, ax
; 循环输入字符串
mov cx, 30 ; 最多输入30个字符串
input_loop:
; 输出提示信息
mov ah, 9
lea dx, prompt
int 21h
; 读入字符串
mov ah, 0ah
lea dx, str
int 21h
; 将字符串复制到数组中
mov si, offset str+1 ; 跳过字符个数的字节
mov di, offset str_arr
mov al, [si]
mov [di], al
mov str_len, al
inc di
inc si
mov cx, str_len
rep movsb
; 判断是否已经输入30个字符串
dec cx
jz input_done
; 继续输入
jmp input_loop
input_done:
; 输出已输入的字符串
mov ah, 9
lea dx, output
int 21h
mov si, offset str_arr
mov cx, 30
output_loop:
mov dl, [si]
cmp dl, 0
jz output_done
mov ah, 2
int 21h
inc si
loop output_loop
output_done:
; 程序结束
mov ah, 4ch
int 21h
main endp
end main
```
这个程序使用了`INT 21h`来输出字符串和读入字符串。具体来说,使用了`AH=0ah`来读入字符串,使用了`AH=9`来输出字符串。在输入字符串时,程序将字符个数和字符串一起读入缓冲区,并将字符串复制到字符串数组中。在输出字符串时,程序遍历字符串数组,并输出每个字符串。
阅读全文