[高等教育]第9章输入输出程序设计.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高等教育]第9章输入输出程序设计

计数器清0 读状态端口 Ready ? 送数据到数据端口 送先高后低的STB信号 打印完? 计数器加1,取下一数据 N Y Y N 结束 图9.3 查询方式控制打印机 【例9.3】控制打印机以查询方式工作,打印26个英文字母,共打印30行。 【解】 sta SEGMENT STACK DB 1024 DUP(0) sta ENDS data SEGMENT print DB abcdefghijklmnopqrstuvwxyz,0DH,0AH data ENDS code SEGMENT ASSUME CS:code,SS:sta,DS:data init PROC NEAR ;打印机初始化程序 MOV DX,37AH MOV AL,08H OUT DX,AL MOV CX,1000 init1: LOOP init1 ;延迟,维持初始化信号一段时间 MOV AL,0CH OUT DX,AL ;结束初始化,保持联机 RET init ENDP start: MOV AX,data MOV DS,AX MOV CX,30 ;30行 again: LEA BX,print ;待打印字符串首地址存放于BX中 next: MOV DX,379H wait: IN AL,DX TEST AL,80H JZ wait ;打印机忙,转去再读状态端口 DEC DX ;数据端口号 MOV AL,[BX] OUT DX,AL ;送数据到数据端口暂存 MOV DX,37AH MOV AL,0DH OUT DX,AL ;置STB信号为1 DEC AL OUT DX,AL ;置STB信号为0 CMP BYTE PTR [BX],0AH JZ newline INC BX JMP next newline: LOOP again MOV AX,4C00H INT 21H code ENDS END start 9.3 中断方式输入输出 把例9.3的程序拿到计算机上去执行,可以发现从键盘上发出程序执行命令后,光标会停在命令的下一行闪烁,并且打印机开始工作,直到打印机打印完所有内容后才会出现系统提示符。也就是说,在打印期间,系统是不能做其它事情的。 分析一下例9.3的程序可以发现,它是让高速的CPU去适应低速的打印机,让CPU反复不停地查问打印机的状态,直到打印机准备好。由于两者的速度差很大,很可能会出现CPU查问成千上万次以后才能等到打印机准备好的信号,送出1个字节的数据。显然,这种数据传递方式的效率是极低的。 设想让CPU把反复查问的时间利用起来去做别的事情,而让打印机在准备好接收一个数据时就向CPU发出一个信号。当CPU接到这个信号时,暂

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档