已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第八章输入输出程序设计 CPU MEM I O设备 总线 I O接口 2 查询方式 程序控制方式 中断方式DMA方式 直接存储器存取方式 成组传送方式 1 I O设备的数据传送方式 3 I O指令是主机与外设进行通信的最基本途径 DOS功能调用和BIOS例行程序中的输入 输出功能也是由IN和OUT指令完成的 例 循环测试某状态寄存器的第2位是否为1AGAIN INAL STATUS PORTTESTAL 00000100BJZAGAIN 2 程序直接控制I O方式 读I O状态 准备好 传送数据 N Y INAL DATA PORT 4 I O指令是主机与外设进行通信的最基本途径 DOS功能调用和BIOS例行程序中的输入 输出功能也是由IN和OUT指令完成的 例 循环测试某状态寄存器的第2位是否为1AGAIN INAL STATUS PORTTESTAL 00000100BJZAGAIN 2 程序直接控制I O方式 读I O状态 准备好 传送数据 N Y MOVAL DATAOUTDATA PORT AL 5 轮流查询几种I O设备 DEV1 INAL STAT1TESTAL STAT1 BITJZDEV2CALLFARPTRPROC1DEV2 INAL STAT2TESTAL STAT2 BITJZDEV3CALLFARPTRPROC2DEV3 INAL STAT3TESTAL STAT3 BITJZDEV1CALLFARPTRPROC3 优 程序安排或修改设备的优先次序缺 查询等待浪费CPU大量有效时间 6 例 Sound程序1 movdx 100inal 61handal 11111100bsound xoral 2out61h almovcx 140hwait1 loopwait1decdxjnesound 7 modeltiny code startupcallspeaker onmovah 1int21hcallspeaker off exit0 speaker onprocpushaxinal 61horal 3out61h alpopaxretspeaker onendpspeaker offprocpushaxinal 61handal 0fchout61h alpopaxretspeaker offendpend 例 Sound程序2 8 printprocnearpushaxpushdxmovdx 378h 数据寄存器outdx almovdx 379h 状态寄存器again inal dxtestal 80h dx 7 busyjeagain 0 打印机忙movdx 37ah 控制寄存器moval 0dhoutdx al 送选通信号jmp 2 展宽选通信号moval 0choutdx alpopdxpopaxretprintendp 例 打印机查询输出子程序 00001101 选通位 自动换行 初始化 选择位 中断位 37AH 9 中断源 引起中断的事件外中断 硬中断 外设的I O请求 可屏蔽中断电源掉电 奇偶错 非屏蔽中断内中断 软中断 INT指令 CPU错 除法错 溢出 为调试程序设置的中断 3 中断传送方式 10 80 x86中断源 11 设置CPU中断允许位 FLAGS中的IF位 1允许中断 STI 0禁止中断 CLI 设置中断屏蔽位 中断屏蔽寄存器的中断屏蔽位 0允许I O设备请求中断 1禁止I O设备请求中断 中断的条件 INAL 21HANDAL 0FDHOUT21H AL 12 类型0的 IP 类型0的 CS 类型1的 IP 类型1的 CS 类型N的 IP 类型N的 CS 类型255的 IP 类型255的 CS 00000 00004 4 N 003FC 中断向量 中断处理程序的入口地址 段址 偏址 中断向量表 用户可利用保留的中断类型号扩充自己需要的中断功能 13 CPU中断过程 1 取中断类型 CPU typeN 2 保护现场 FLAGS CS IP入栈 3 IF 0 TF 0 4 取中断向量 4 N IP 4 N 2 CS 5 转中断处理程序 14 例 为中断类型N设置中断向量 MOVAX 0MOVES AXMOVBX N 4MOVAX OFFSETINTHANDMOVES WORDPTR BX AX 偏移地址 N 4 MOVAX SEGINTHANDMOVES WORDPTR BX 2 AX 段地址 N 4 2 INTHAND 中断处理程序 IRET 15 DOS功能调用 21H 存取中断向量 设置中断向量 AH 25HAL 中断类型号DS DX 中断向量INT21H取中断向量 AH 35HAL 中断类型号INT21H返回时送ES BX 中断向量 16 MOVAL NMOVAH 35HINT21H 取原中断向量PUSHESPUSHBX 保存原中断向量PUSHDSMOVAX SEGINTHANDMOVDS AXMOVDX OFFSETINTHANDMOVAL NMOVAH 25HINT21H 设置新的中断向量POPDS POPDXPOPDSMOVAL NMOVAH 25HINT21H 恢复原中断向量 INTHAND 中断处理程序 IRET 例 用DOS功能调用存取中断向量 17 中断程序的编写步骤 主程序 设置中断向量设置CPU的中断允许位IF设置设备的中断屏蔽位中断处理子程序 保存寄存器内容如允许中断嵌套 则开中断 STI 中断处理功能关中断送中断结束命令 EOI 给中断命令寄存器恢复寄存器内容IRET中断返回 18 例 编写一个中断处理程序 要求在主程序运行期间 每隔10秒响铃一次 同时显示 bell 定时器中断18 2次 SEC INT TIMER INT1CH IRET INT 1CHPROCIRETINT ICHENDP RINGPROC1 计数182 10秒 2 显示字符串IRETRINGENDP 19 例 编写一个中断处理程序 要求在主程序运行期间 每隔10秒响铃一次 并显示 bell modelsmall stack datacntdw1mesdb bell 0ah 0dh codemainprocfarstart movax datamovds ax moval 1chmovah 35hint21hpushespushbxpushdsmovdx offsetringmovax segringmovds axmoval 1chmovah 25hint21hpopdsinal 21handal 11111110bout21h alsti 20 movdi 30000dly movsi 60000dly1 decsijnzdly1decdijnzdly 主程序popdxpopdsmoval 1chmovah 25hint21hmovax 4c00hint21hmainendp 21 例 键盘模拟程序 字符码 采用ASCII码表示字母 数字 专用字符和一些非打印字符 键盘上的控制键和功能键的ASCII码为0 必须用扫描码来识别 扫描码 键盘上的每个键都对应一个扫描码 扫描码是按键的位置来排列的 datasegmentscatabdb0 0 1234567890 8 0db qwertyuiop 0dh 0db asdfghjkl 0 0 0 0db zxcvbnm 0 0 0db 0 0 0 0 0 0 0 0 0 0 0 0 0db 789 456 1230 0dataends 22 23 例 从键盘接收字符 同时对32字节的输入缓冲区进行测试 如缓冲区已满 将键盘挂起 由打印机输出一个提示信息 MAIN BUFFER满CALLCALLIRET N KBD中断32次 TYP中断17次 KBINT IRET PRINT RET DISP RET INTIP 24 例 从键盘接收字符 同时对32字节的输入缓冲区进行测试 如缓冲区已满 将键盘挂起 由打印机输出一个提示信息程序包括以下几个部分 main初始化部分kbint键盘中断处理程序intip初始化打印机prtint打印机中断处理程序disp用十六进制显示al中的内容 25 dsegsegmentaddrdw 缓冲区指针countdw bufferdb20hdup promptdb pleaseinput 0dh 0ah messagedb bufferoverflow 0dh 0ahsave ip9dw save cs9dw save ipfdw save csfdw dsegendsmainprocfar movaddr offsetbuffermovcount 0 26 moval 09 键盘movah 35hint21hmovsave ip9 bxmovsave cs9 esmovdx offsetkbintpushdsmovax segkbintmovds axmoval 09movah 25hint21hpopdsinal 21handal 0fdhout21h al 27 28 kbintprocnearpushaxpushbxinal 60hpushaxinal 61hmovah aloral 80hout61h al 送键盘应答信号xchgah alout61h al 复位键盘popaxtestal 80hjnzret1 通码时处理 29 intipprocn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水稻干燥协议
- 西藏林芝第一中学2025年数学高二第一学期期末调研试题含解析
- 山西省朔州市平鲁区李林中学2025年高二上生物期末调研模拟试题含解析
- 货检值班员安全行为能力考核试卷含答案
- 上海市华师大三附中2025-2026学年高二上化学期末综合测试模拟试题含解析
- 山东省泰安市第四中学2026届化学高二第一学期期末综合测试试题含解析
- 法院取消调解协议书
- 小学出游安全协议书
- 演出用工合同协议书
- 平田征地协议书范本
- 保管人员基础技能培训手册
- 贵州省黔东南苗族侗族自治州2024-2025学年七年级下学期7月期末数学试题(含部分答案)
- 红十字救护员师资培训试讲
- 京东预算管理制度
- 单片机智能鞋柜控制系统的设计与实现
- 重庆芯片项目商业计划书
- 2025天津市滨海新区辅警考试试卷真题
- 水样采集考试题及答案
- 工艺验证检查指南2025
- 资源与运营管理-第二次形考任务-国开-参考资料
- TCSCP 0006-2024 桥梁钢结构腐蚀程度评价方法
评论
0/150
提交评论