清华大学:《汇编语言程序设计》第八章 输入输出程序设计

第八章输入输出程序设计 IO设备的数据传送方式 程序直接控制O方式 中断传送方式
1 第八章 输入输出程序设计 • I/O 设备的数据传送方式 • 程序直接控制 I/O 方式 • 中断传送方式

1.IO设备的数据传送方式 查询方式 (程序控制方式) 中断方式 DMA方式 (直接存储器存取方式/成组传送方式)
2 查询方式 (程序控制方式) 中断方式 DMA 方式 (直接存储器存取方式 / 成组传送方式) 1. I/O 设备的数据传送方式

程序直接控制ⅣO方式 IO指令是主机与外设进行通信的最基本途径 DOS功能调用和BIOS例行程序中的输入/输出功能 也是由IN和OUT指令完成的。 例:循环测试某状态寄存器的第2位是否为1 AGA工N:工N AL. 27H TEST AL 00000100B JZ AGAIN
3 I/O指令是主机与外设进行通信的最基本途径。 DOS功能调用和BIOS例行程序中的输入/输出功能 也是由 IN 和 OUT 指令完成的。 例:循环测试某状态寄存器的第2位是否为1 AGAIN: IN AL, 27H TEST AL, 00000100B JZ AGAIN 2. 程序直接控制 I/O 方式

例: Sound程序1 mov dx, 100 In 1,61h and al,11111100b sound xor al 2 out 61h al mov X,140h wail: loop wait dec dx ne sound 设备控制寄存器(61h) 0 1/00 2号定时器门控 控制其它外部设备 与放大器
4 设备控制寄存器( 61h ) 1/0 0 控制其它外部设备 与 门 放大器 2号定时器门控 1 0 例:Sound 程序 1 …… mov dx, 100 in al, 61h and al, 11111100b sound: xor al, 2 out 61h, al mov cx, 140h wait1: loop wait1 dec dx jne sound ……

例: Sound程序2 speaker_on proc push ax model tiny 1 al. 61h code or 1,3 startup out 61h. al ca speaker_on pop ax mov ah 1 ret int 21h speaker_on endp call speaker_off exit o speaker_off proc push ax 1.61h and al. ofch out 61h. al pop ax ret speaker_off endp end 5
5 .model tiny .code .startup call speaker_on mov ah, 1 int 21 h call speaker_off .exit 0 speaker_on proc push ax in al, 61 h or al, 3 out 61h, al pop ax ret speaker_on endp speaker_off proc push ax in al, 61 h and al, 0fch out 61h, al pop ax ret speaker_off endp end 例:Sound 程序 2

例: Sound程序3 speaker _on proc push ax call speaker_on 1 al. 61h or 1,3 mov al. 255 out 61h. al out 42h. al pop ax mov CX, 500 ret 2: push CX speaker_on endp mov Cx. 0do00h L2a. speaker_off proc loop L2a push ax pop CX 1.61h loop L2 and al. ofch sub al 1 out 61h. al Jnz pop ax ret call speaker_off speaker_off endp
6 …… call speaker_on mov al, 255 L 1 : out 42 h , al mov cx, 500 L 2 : push cx mov cx, 0 d000 h L 2 a : loop L 2 a pop cx loop L 2 sub al, 1 jnz L 1 call speaker_off …… speaker_on proc push ax in al, 61 h or al, 3 out 61h, al pop ax ret speaker_on endp speaker_off proc push ax in al, 61 h and al, 0fch out 61h, al pop ax ret speaker_off endp …… 例:Sound 程序 3

例:打印机查询输出子程序 print proc near push ax push dx mov dx. 378h ;数据寄存器 out dx. al mov dx. 379h ;状态寄存器 again: In a test al. 80h Je agaIn 打印机忙? mov dx. 37ah ;控制寄存器 mov al. odh out dx. al 送选通信号 jmp $+2 ;展宽选通信号 mov al Och out dx. al pop dx pop ax ret print endp 7
7 print proc near push ax push dx mov dx, 378h ; 数据寄存器 out dx, al mov dx, 379h ; 状态寄存器 again: in al, dx test al, 80h je again ; 打印机忙? mov dx, 37ah ; 控制寄存器 mov al, 0dh out dx, al ; 送选通信号 jmp $+2 ; 展宽选通信号 mov al, 0ch out dx, al pop dx pop ax ret print endp 例:打印机查询输出子程序

3.中断传送方式 中断源:引起中断的事件 外中断(硬中断): 外设的IO请求 可屏蔽中断 电源掉电/奇偶错—非屏蔽中断 内中断(软中断): INT指令/CPU错(除法错、溢出)/为调试程序设置的中断
8 中断源:引起中断的事件 外中断(硬中断): 外设的 I/O 请求 —— 可屏蔽中断 电源掉电 / 奇偶错 —— 非屏蔽中断 内中断(软中断): INT 指令 / CPU 错(除法错、溢出) / 为调试程序设置的中断 3. 中断传送方式

80x86中断源: 非屏蔽中断请求 8259AIRQ0-6系统定时器 2 NMI 可R1键盘 编R2彩色/图形接口 ENTR 程 CPU 中断逻辑 3保留 断IR4串行通讯口 控 保留 制 IR6软盘 INT n INTO除法错单步 器 (PC)R7打印机
9 非屏蔽中断请求 中断逻辑 INT n INTO 除法错 单步 n 4 0 1 CPU 2 NMI 8259A 可 编 程 中 断 控 制 器 ( PIC ) IR0 系统定时器 IR1 键盘 IR2 彩色/图形接口 IR3 保留 IR4 串行通讯口 IR5 保留 IR6 软盘 IR7 打印机 INTR 08 09 0A 0B 0C 0D 0E 0F 80x86 中断源:

CPU响应外设中断请求的条件: 设置CPU中断允许位 PSW中的IF位=1允许中断(ST) 0禁止中断(CL) 设置中断屏蔽位 中断屏蔽奇存器的中断屏蔽位=0允许中断 1禁止中断 8259A 32 中断屏蔽寄存器21H 时 机 中断命令寄存器20H[Eo MOV AL 20H OUT 20H,A 10
10 设置CPU中断允许位: PSW 中的 IF 位 = 1 允许中断 ( STI ) = 0 禁止中断 ( CLI ) 设置中断屏蔽位: 中断屏蔽寄存器的中断屏蔽位 = 0 允许中断 = 1 禁止中断 7 6 5 4 3 2 1 0 定 时 器 键 盘 打 印 机 中断屏蔽寄存器21H 7 6 5 4 3 2 1 0 中断命令寄存器20H EOI MOV AL, 20H OUT 20H, AL 8259A CPU响应外设中断请求的条件:
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《汇编语言程序设计》第五章 循环与分支程序设计.ppt
- 清华大学:《汇编语言程序设计》第二章 80x86计算机组织.ppt
- 清华大学:《汇编语言程序设计》第九章 BIOS和DOS中断.ppt
- 清华大学:《汇编语言程序设计》第三章(3-3) 逻辑指令.ppt
- 清华大学:《汇编语言程序设计》第三章(3-2) 8086的指令系统.ppt
- 清华大学:《汇编语言程序设计》第三章(3-1) 8086的寻址方式.ppt
- 清华大学:《汇编语言程序设计》第七章 高级汇编语言技术.ppt
- 清华大学:《汇编语言程序设计》第一章 基础知识.ppt
- 清华大学:《汇编语言程序设计》汇编语言程序与高级语言程序的连接.ppt
- 徐州工程学院:《网页制作与网站建设》讲义.docx
- 《计算机进程管理》讲义.ppt
- 《计算机辅助设计——机电系统CAD》教学讲义教材:附录二 常见机械CAD软件简介.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:附录一 MATLAB 软件简介.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第八章 机电系统计算机辅助设计的发展.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第七章 机电系统的智能设计理论和方法.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第六章 产品数据管理技术.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第五章 机械产品模型理论及常用建模技术.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第四章 机电系统动态性能的计算机仿真.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第三章 机电系统的计算机辅助分析.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第二章 机电系统CAD算法基础.doc
- 清华大学:《汇编语言程序设计》第六章 子程序结构.ppt
- 清华大学:《汇编语言程序设计》第四章 汇编语言程序格式.ppt
- 清华大学:《汇编语言程序设计》绪论.ppt
- 《数据库原理与应用》ppt电子书.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第二章 C++基础知识.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第九章 多态性.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十章 模板.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第四章 函数.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十二章 异常处理.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第五章 类与对象.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第七章 动态内存分配.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第八章 继承性.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十三章 图书馆设计.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第三章 基本控制结构程序设计.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第六章 数据结构.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)习题课.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)模板习题.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十一章 流类库和输入/输出.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第一章 软件设计.ppt
- 深圳信息职院:《电子商务》双语版 UNIT 17-01 Outlook Express6说明.ppt