[DOS]DOS功能调用06H 执行控制台I/O_编程学习_百度空间 http://hi.baidu.com/asmfan/item/4278a2eb1935091965db009f...

[DOS]DOS功能调用06H 执行控制台I/O

DOS功能调用 06H      执行直接控制台I/O  功能调用:      06H 执行直接控制台I/O  DOS版本:      1.0、1.1、2.0、2.1、3.0、3.1、3.2  说明:      此功能调用提供下述两种功能之一:向标准输出设备(一般是显示器)发送字符和从标准输入设备(一般是键盘)接收一个字符。DOS2.0以上版本允许重定向标准输入和输出设备。此重定向程序使用此功能调用对其它设备(如文件)进行读或写。      此功能调用不检查字符是否是Ctrl-Break或Ctrl-Prtsc字符且对这些字符不进行特殊处理。      当此功能调用从键盘接收一字符时,它在显示器上显示该字符。      如果在使用功能调用接收字符时没有有效字符,该功能调用等待,直到一个有效字符(直到操作员按一键),如果不希望程序无限等待,应当先使用功能调用0BH(检查输入设备的状态)来查看是否有一个有效字符。  入口参数:      调用前,需设置寄存器:      AH=06H 指出功能调用号。      DL  置为FFH,功能调用从键盘读一字符,若为其他数值,功能调用在控制台屏幕上显示字符。  出口参数:      如从键盘接收一字符(在使用功能调用前将DL设成FFH),则当返回后,设置为:      AL= 如果键盘上有一个准备好的字符,零标志被清除且此寄存器将含有该字符。      如无有效字符,零标志将被置位,这种情况下AL为0。  其他要求:      在读一字符时,如从此功能调用返回的值是00H,则该字符是一个扩展ASCII字符(如功能键,ALT键或光标键)。必须再次使用此功能调用以确定该扩展ASCII字符第二个调用返回的是该字符的扩展部分。  参见:          01H 读键盘字符并回显。          07H 直接控制台输入但不回显。          08H 读键盘字符但不回显          0BH 检查输入设备状态。  程序实例:      下面的实例用功能调用06H从键盘接收输入。该程序在屏幕上连续显示一串信息。当按除‘s’之外的任何健时,该程序在屏幕上显示‘......INTERRUPTED......’键入‘s’结束程序。  ;  ;DIRECT CONSOLE I/O (0bH)  ;  code segment public          assume cs:code,ds:code          org 100h  start:          jmp begin  msg1    db 0dh,0ah          db 'Press "s" to stop, any other key to interrupt.'          db '$'  msg2    db '......INTERRUPTED......','$'  begin:          mov ax,cs          mov ds,ax  next:          mov dx,offset msg1          mov ah,09h          int 21h          mov dl,0FFh         ;从键盘读字符          mov ah,06h          ;直接控制台输入输出          int 21h             ;调用DOS          jnz keyhit          ;如果键被按下,ZF=0          jmp next            ;取下一个字符  keyhit:          cmp al,'s'          ;是要终止吗?          je done             ;是就终止          mov dx,offset msg2  ;不是就显示msg2          mov ah,09h          int 21h          jmp next  done:          mov ax,4c00h          int 21h  code ends          end start

转载于:https://www.cnblogs.com/hachi0/p/3446446.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值