这是之前回答别的问题写下的....
int21h, ah=0Ah的输入函数, 先定义一个输入字符串的结构.如下
STRING DB [输入限制],[实际输入], 输入限制 DUP (?)
样子就是
STRING DB 10,0,10 DUP (?)
第1个字节是输入限制,设定=10,则表示只能输最多10个字符(含回车).
第2个字节是实际输入,若输入12,按回车,这里会是2
第3个字节,是实际输入字串的起点,若输入12,按回车,整个STRING看起来就是
10,02,31,32,0D ;31,32是12的ASCII码,0D是用户最后按下的回车.
有了结构,读取字串的代码大概是这样.
MOV AH,0AH ;输入字串函数
MOV DX,OFFSET STRING ;指向结构起点
INT 21H
LEA BX,STRING+1 ;指向实际输入
MOV CL,[BX] ;取值
MOV CH,0 ;清除CH,则 CX=实际输入个数,也就是长度
;至此CX = 长度
;用SI(或BX,DI等)指向 STRING + 2 = 用户输入字串起点
;然后逐一读入字符,再经一连串步骤才可以把字符串的'12'转换成真正的值....
;详细代码可参考楼上连结的贴子.