1.键盘输入(1号调用)
调用格式:
图4-2 系统功能调用过程
功能:等待从键盘输入一个字符并将输入字符的ASCII码送入寄存器AL中。
系统执行该功能调用时将扫描键盘,等待键按下。一旦有按键按下,就将其字符的ASClI码读入,首先检查是否是<Ctrl+Break>组合键的ASCII码,若是,则从本调用的执行中退出;否则,将ASCII码送AL,同时将该字符送显示器显示。
2.显示输出(2号调用)
调用格式:
功能:将DL中的字符送显示器显示,若DL中为<Ctrl+Break>组合键的ASCII码,则从本调用的执行中退出。
例如:
完成输出一个换行符的功能。
3.打印输出(5号调用)
调用格式:
功能:将DL中的字符送打印机打印。 例如:
完成将A字符送打印机打印的功能。
4.显示字符串(9号调用)
调用格式:
功能:将当前数据区中DS:DX所指向的以|“$”结尾的字符串送显示器显示。
例4-8 阅读下列程序,指出该程序执行后显示器显示的结果是什么。
执行以上程序,显示器上将显示出字符串:I WISH YOU SUCCESS!
需要说明的是:在使用9号调用时,待输出的字符串一定要在当前数据段中,而且字符串要用“$”结尾。如果待输出的字符串本身就包含字符“$”,那就不能采用本调用,而只能循环使用调用才能完成整个字符串的输出。
5.键盘输入字符串(10号调用)(www.xing528.com)
调用格式:
功能:从键盘上往DS:DX所指的输入缓冲区输入字符串并送显示器显示。
说明:
①该调用要求输入缓冲区要按规定的格式定义:
其中,缓冲区中的第一个字节规定了缓冲区的大小,它不能是0。从键盘输入的字符串从第三个字节单元存放,最后以回车(0DH)作结束。第二个字节存放实际从键盘输入的字符个数。回车符的ASCII码也被送入缓冲区,但不计入输入的字符个数之中。如果输入的字符个数超过了缓冲区的大小,则多余字符被删除并且扬声器响。
例如: BUF DB 80
DB?
DB 80 DUP(0)
以上数据定义语句定义了80个字节的输入缓冲区,里面最多可以装79个输入字符,实际输入字符串后面的一个字节装回车符。
又如: BUF DB 80
DB?
DB 200 DUP(0)
系统仍然认为定义了80个字节的输入缓冲区,最后一条语句多定义的缓冲区没有用。
再如:BUF DB 80
DB?
DB 20 DUP(0)
系统仍然认为定义了80个字节的输入缓冲区,由于缓冲区的实际大小只有20个字节,当输入的字符超过20B时,缓冲区自动往下延伸,覆盖紧跟其后的存储单元中的内容,会造成程序运行的混乱。
②该缓冲区一定要定义在当前数据段中。
③如果系统使用的操作系统是CCDOS,则本调用和9号调用中的字符串均可以包含汉字,只不过一个汉字算两个字符。
④以上系统功能调用语句中只使用AH寄存器,而未用AL,但由于系统通常将调用后的出口参数置在AL中,有些调用即使没有出口参数也会破坏AL原来的内容,因此在程序设计时需要全面考虑,合理安排,以免产生错误结果。
例4-9 阅读下列程序,指出该程序的功能和执行后显示器显示的结果是什么。
该程序的功能是将变量A中的数据以二进制形式在显示器上输出。其显示器结果为
并使光标回车换行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。