汇编语言输入一个字符串

lea dx, buflen
mov ah, 10
int 21h
上面这段代码是从键盘输入字符串,保存在 buf中,buffer 当初申请了100个字节的空间 我想问能不能有办法知道实际输入的字符数目aclen
挺急的 在线等

第1个回答  2014-11-27
执行 INT 21H 后,键盘实际输入的字符数,就存在 BUFLEN + 1 中。本回答被提问者采纳
第2个回答  推荐于2018-03-21
首先DOS调用0AH的功能:DX的内容设置为内存缓冲区的首地址,这里的缓冲区定义,格式上有规定:缓冲区的第0个字节表示字符串的最大长度;第1个字节一般初始化为0,调用结束后会由系统自动存入实际数据的字符个数;第2个字节开始才是存放输入字符的ASCII码。
比如在数据段有如下定义:
buffer db 5,0,5 dup(0)
这里的5表示字符串最大长度为5个字符;0占用的那个字节在调用结束后会被放入实际输入的字符个数;5 dup(0)开辟5个字节单元,存放输入的字符的ASCII码。
所以在执行完int 21h后,你可以
mov bl,buffer[1]看别人讲的不知道对不对本回答被网友采纳
相似回答