用汇编语言编写x86程序,从键盘输入一组字符,直到输入“0”为止,当输入是小写字母时,则修改为大写字母,输入的字符存放在string为首址的存储单元中。续写程序data segment string db 100 dup(?) data ends code segment assume cs:code,ds:data
时间: 2023-03-02 12:20:17 浏览: 104
以下是实现要求的汇编语言程序:
```
data segment
string db 100 dup(?)
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax ; 设置DS寄存器指向数据段
mov si, offset string ; SI寄存器指向string
mov cx, 100 ; CX寄存器设置为100,最多读入100个字符
read_loop:
mov ah, 01h ; 从键盘读入一个字符
int 21h
cmp al, '0' ; 判断是否读入的是0
je end_read ; 如果是0,则结束读入
; 如果读入的是小写字母,则转换为大写字母
cmp al, 'a'
jb continue ; 如果小于'a',则不是小写字母,跳过
cmp al, 'z'
ja continue ; 如果大于'z',则不是小写字母,跳过
sub al, 20h ; 转换为大写字母
continue:
mov [si], al ; 存储读入的字符
inc si ; 移动指针到下一个存储单元
loop read_loop ; 继续读入下一个字符
end_read:
mov ah, 4ch ; 返回操作系统
int 21h
code ends
end start
```
程序首先设置DS寄存器指向数据段,然后将SI寄存器指向存储输入字符的string数组的首地址,CX寄存器设置为100,最多读入100个字符。
然后进入读入循环,从键盘读入一个字符,判断是否读入的是0,如果是则结束读入。否则,如果读入的是小写字母,则将其转换为大写字母。最后将读入的字符存储在数组中,并将指针移动到下一个存储单元。
读入循环结束后,程序返回操作系统。
阅读全文