汇编8086如何获得键盘输入字符串长度
时间: 2024-03-03 18:47:39 浏览: 46
在汇编8086中,可以使用BIOS中断INT 16H来获取键盘输入字符串长度。具体步骤如下:
1. 设置AH为0AH,调用INT 16H中断,等待键盘输入。
2. 输入的字符串会被存储在键盘缓冲区中,可以使用BIOS中断INT 16H中的AH=0Bh来读取键盘缓冲区中的字符。
3. 在读取到回车键(ASCII码为0DH)时,判断输入字符串是否结束,如果结束,则可以通过AH和AL寄存器中的值来获取输入字符串的长度。
下面是一个简单的示例代码:
```
MOV AH, 0AH ; 设置AH为0AH
MOV DX, OFFSET buffer ; 设置DX为缓冲区地址
INT 16H ; 调用INT 16H中断
MOV SI, OFFSET buffer+1 ; 设置SI为缓冲区第一个字符的地址
MOV CX, 0 ; 初始化字符串长度为0
loop:
LODSB ; 从SI指向的地址读取一个字符到AL中,并且SI自动加1
CMP AL, 0DH ; 判断是否读取到回车键
JE done ; 如果是,跳转到done标签
INC CX ; 字符串长度加1
JMP loop ; 继续循环
done:
MOV length, CX ; 将字符串长度存储到length变量中
```
其中,buffer是用来存储键盘输入字符串的缓冲区,length是用来存储输入字符串的长度的变量。