Dan*_*ner 1 x86 assembly dos x86-16
我觉得好像我不理解8086汇编中断21H的功能0AH.我阅读了语法教程,例如:
"缓冲区的第一个字节指定它可以容纳的最大字符数(1到255).该值必须由用户提供.缓冲区的第二个字节由DOS设置为实际读取的字符数,不包括终止返回."
所以我尝试了一个非常基本的代码.
mov dh, 01
mov ah, 0AH
int 21H
Run Code Online (Sandbox Code Playgroud)
我运行这个程序,输入一个数值,然后按回车键.然而,Debug显示我的寄存器都没有从此操作中更改.我不知道在哪里,如果有的话,我输入的值被存储.有人可以帮我弄这个吗?
在调用int 21h之前,必须将DS:DX设置为指向缓冲区
Buffer on entry:
+0: db MaxLength
Buffer on exit:
+0: db MaxLength
+1: db Length of entered text (L)
+2: db 'Entered text of length L'
+(2+L): db 0Dh
Run Code Online (Sandbox Code Playgroud)