汇编语言-----字符串的输入利用int 16h读取键盘缓冲区

时间:2021-11-05 01:27:38

学到这里,已经感觉有点跟不上王爽老师的步伐了,因为有些程序需要在dos的实模式下才可以运行出来

自己又懒得去整,最多是在虚拟机下的xp,有些东西还是无法运行出来


这道题是书上的例题,我进行了整理

功能是最基本的字符串输入程序,需要具备下面的功能

1、在输入的同时需要显示这个字符串

2、一般在输入回车符后,字符串输入结束

3、可以删除已经输入的字符串

程序如下:



12行和13行是设定要显示的行和列


108行的作用:

因为判断栈空的条件是top=0,所以当栈空的时候top还指向第一个元素,第一个元素没有被删除

所以要再将top指向的清零


116行的作用:

我试着将+2,换成+4、+6、+8,发现程序是将显示的代码往后偏移的第几个置为空格

比如如果是+6,屏幕上现在显示的是‘abcde’,你现在输入2,屏幕上就是‘2bc e’,将第四个置为空格

这只是我认为的,但是实际上却是‘2 c e’,原因还没搞懂

按理上说,将这条代码如果注释,那输入的字符相邻的字符就不会置为空格,

但是结果和不注释是一样的


我想是不是在dos实模式下运行就会好,这个问题还有待于验证