第12章 输入和输出.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
寄存器的保存 0D .text 0E sw SaveR1(r0), r1 ; 保存此例程需要的寄存器 0F sw SaveR2(r0), r2 10 sw SaveR3(r0), r3 11 sw SaveR5(r0), r5 输出新行 12 lb r2, Newline(r0) 13 lw r5, DSR(r0) ; 测试输出寄存器是否就绪 14 L1: lw r3, 0(r5) 15 andi r3, r3, #1 16 beqz r3, L1 ; 循环直到显示器就绪 17 lw r5, DDR(r0) 18 sw 0(r5), r2 ; 光标移到新的一行 19 ; 输出提示符 1A addi r1, r0, Prompt ; 提示符字符串的起始地址 1B LOOP: lb r2, 0(r1) ; 输出提示符 1C beqz r2, Input ; 提示符字符串结束 1D lw r5, DSR(r0) 1E L2: lw r3, 0(r5) 1F andi r3, r3, #1 20 beqz r3, L2 ; 循环直到显示器就绪 21 lw r5, DDR(r0) 22 sw 0(r5), r2 ; 输出下一个提示符字符 23 addi r1, r1, #1 ; 提示符的指针加1 24 j LOOP ; 获取下一个提示符字符 25 ; 输入回显 26 Input: lw r5, KBSR(r0) 27 L3: lw r3, 0(r5) 28 andi r3, r3, #1 29 beqz r3, L3 ; 轮询直到一个字符被键入 2A lw r5, KBDR(r0) 2B lw r4, 0(r5) ; 将输入的字符加载到R4 2C lw r5, DSR(r0) 2D L4: lw r3, 0(r5) 2E andi r3, r3, #1 2F beqz r3, L4 ; 循环直到显示器就绪 30 lw r5, DDR(r0) 31 sw 0(r5), r4 ; 将输入的字符回显 32 ; 输出新行 33 lb r2, Newline(r0) 34 lw r5, DSR(r0) 35 L5: lw r3, 0(r5) 36 andi r3, r3, #1 37 beqz r3, L5 ; 循环直到显示器就绪 38 lw r5, DDR(r0) 39 sw 0(r5), r2 ; 移动光标到新的一行 3A? 寄存器的恢复 3B lw r1, SaveR1(r0) ; 将寄存器恢复为原先的值 3C lw r2, SaveR2(r0) 3D lw r3, SaveR3(r0) 3E lw r5, SaveR5(r0) 3F j NEXT_TASK ?; 执行这个例程的下一个任务 习题 12.6 12.7 12.8 订正:ANDI R5, R4, #1 BEQZ R5, START * 第十二章 输入和输出 输入和输出 输入和输出是冯·诺依曼模型的重要组成部分(第8章) 可以通过执行TRAP指令来完成输入和输出(第9章) TRAP指令调用的是操作系统的I/O设备管理例程(第12、13章) I/O设备寄存器 每一个I/O设备被作为一个单独的实体对待 与一个单独的I/O设备交互,意味着与一个以上的设备寄存器进行交互 最简单的I/O设备通常至少包含 保存在计算机和设备之间进行传输的数据的寄存器 键盘数据寄存器中存储的是用户输入的字符的ASCII码 保存设备的状态信息的寄存器 例如设备是处于可用的状态还是正忙于执行最近的I/O任务 内存映射I/O与专门的I/O指令 如何读取I/O设备寄存器中的数据? 如何向I/O设备寄存器加载数据? 可以采用两种机制 使用专门的I/O指令 Intel的x86指令集,in/out 使用用于在通用寄存器和存储器之间传送数据的数据传送指令 使用现有指令 问题:如何表示I/O设备寄存器? 采用内存映射的方式 每一个I/O设备寄存器都被分配一个存储器地址空间中的地址 这些地址被分配给I/O设备寄存器,而不再是存储单元 DLX-内存映射的I/O 地址xFFFF 0000到xFFFF 00FF被分配给I/O设备寄存器,其他地址分配给存储单元 地址 I/O寄存器 xFFFF 0000~ xFFFF 0003

文档评论(0)

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

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

1亿VIP精品文档

相关文档