汇编中怎样一次输入多个字符

来源:百度知道 编辑:UC知道 时间:2024/05/05 04:56:41
用DOS功能调用的01号只能一次输入一个字符吧?怎样能把连续输入的‘12’当作一个十进制数储存起来呢?

汇编语言编程时,如果想一次输入多个字符,需要设定结束字符输入的条件。下面以示例程序说明:
data segment
str db 200 dup (00h);定义输入字符接收区
data ends

code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea si,str
mov cx,200;限定最多输入200字符
inpstr: mov ah,01h;等待输入字符
int 21h
mov [si],a1;输入的字符存入接收区
inc si
xor al,0dh;以回车符作为结束条件
jz endinp
loop inpstr;如果没有输入回车符,以输入200字符作为结束条件

endinp: mov ah,4ch;输入的字符在接收区,结束程序
int 21h
ret
main endp
code ends
end start

这时你可以规定间隔符,通常采用非数字的一些符号如:空格、逗号、回车等。
实际中,通常连续检测(循环)所读到的字符如果是数字字符,则认为该书没有结束,否则数据已经输入完毕。

LEA DI, BUF
CLD
next:
MOV AH, 1
INT 21H
CMP AL,'0'
JB LEND
CMP AL,'9'
JA LEND
STOSB ; 保存在buf中,以备后