采用INT 21H的01号功能,从键盘输入字符,若是”ESC”(1BH)则退出程序,若是大写字母(41H-5BH),则转换成小写字母(61H-7BH),并把转换后的小写字母存储到数据段的OK变量(长度为100)。
时间: 2024-01-21 09:02:57 浏览: 53
好的,这是一个关于键盘输入和字符转换的问题。我可以为您提供一些代码示例,供您参考。
首先,我们需要定义一个数据段的变量,用于存储转换后的小写字母。假设我们将其命名为OK,长度为100字节,那么可以这样定义:
```
OK db 100 dup(0)
```
接下来,我们可以使用INT 21H的01号功能从键盘获取用户输入的字符。具体来说,可以使用以下代码:
```
mov ah, 01h ; 设置功能号为01h
int 21h ; 调用21h中断
```
此时,用户输入的字符会存储在AL寄存器中。接下来,我们需要判断用户输入的字符是否为ESC。如果是ESC,则程序退出;否则,我们需要判断该字符是否为大写字母。如果是大写字母,则转换成小写字母并存储到OK变量中。以下是完整的代码示例:
```
.model small
.stack 100h
.data
OK db 100 dup(0)
.code
start:
mov ax, @data
mov ds, ax
input:
mov ah, 01h ; 设置功能号为01h
int 21h ; 调用21h中断
cmp al, 1Bh ; 判断是否为ESC
je exit ; 如果是ESC,则退出程序
cmp al, 'A' ; 判断是否为大写字母
jb input ; 如果不是大写字母,则重新输入
cmp al, 'Z'
ja input
sub al, 20h ; 转换成小写字母
mov bx, offset OK ; 获取OK变量的偏移地址
mov [bx], al ; 存储到OK变量中
inc bx ; 移动指针到下一个字节
cmp bx, offset OK + 100 ; 判断是否超出数组范围
jbe input ; 如果没有超出,则继续输入
exit:
mov ah, 4Ch ; 设置功能号为4Ch
int 21h ; 调用21h中断,退出程序
end start
```
注意,在上面的代码中,我们使用了一个指针BX来遍历OK变量的每个字节,并判断是否超出数组范围。如果超出,则重新开始输入。这是为了防止用户输入过多的字符而导致程序崩溃。
希望这个示例对您有帮助!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)