第八章输入输出程序设计.ppt
《第八章输入输出程序设计.ppt》由会员分享,可在线阅读,更多相关《第八章输入输出程序设计.ppt(32页珍藏版)》请在三一文库上搜索。
1、第八章 输入输出程序设计,CPU,MEM,I/O设备,总线,I/O接口,查询方式 (程序控制方式) 中断方式 DMA方式 (直接存储器存取方式/成组传送方式),1. I/O 设备的数据传送方式,I/O 指令是主机与外设进行通信的最基本途径。DOS 功能调用和BIOS例行程序中的输入/输出功能也是由IN和OUT指令完成的。 例:循环测试某状态寄存器的第2位是否为1 AGAIN: IN AL, STATUS_PORT TEST AL, 00000100B JZ AGAIN,2. 程序直接控制 I/O 方式,读I/O状态,准备好?,传送数据,N,Y,IN AL,DATA_PORT,I/O 指令是主机
2、与外设进行通信的最基本途径。DOS 功能调用和BIOS例行程序中的输入/输出功能也是由IN和OUT指令完成的。 例:循环测试某状态寄存器的第2位是否为1 AGAIN: IN AL, STATUS_PORT TEST AL, 00000100B JZ AGAIN,2. 程序直接控制 I/O 方式,读I/O状态,准备好?,传送数据,N,Y,MOV AL, DATA OUT DATA_PORT, AL,轮流查询几种I/O设备: DEV1: IN AL, STAT1 TEST AL, STAT1_BIT JZ DEV2 CALL FAR PTR PROC1 DEV2: IN AL, STAT2 TES
3、T AL, STAT2_BIT JZ DEV3 CALL FAR PTR PROC2 DEV3: IN AL, STAT3 TEST AL, STAT3_BIT JZ DEV1 CALL FAR PTR PROC3,优:程序安排或修改 设备的优先次序 缺:查询等待浪费CPU大量有效时间,例: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 ,.model tiny .code .start
4、up call speaker_on mov ah, 1 int 21h call speaker_off .exit 0,speaker_on proc push ax in al, 61h or al, 3 out 61h, al pop ax ret speaker_on endp speaker_off proc push ax in al, 61h and al, 0fch out 61h, al pop ax ret speaker_off endp end,例:Sound 程序2,print proc near push ax push dx mov dx, 378h ; 数据寄
5、存器 out dx, al mov dx, 379h ; 状态寄存器 again: in al, dx test al, 80h ; (dx)7 = busy je again ; =0,打印机忙 mov dx, 37ah ; 控制寄存器 mov al, 0dh out dx, al ; 送选通信号 jmp $+2 ; 展宽选通信号 mov al, 0ch out dx, al pop dx pop ax ret print endp,例:打印机查询输出子程序,0 0 0 0 1 1 0 1,选通位,自动换行,初始化,选择位,中断位,37AH,中断源:引起中断的事件 外中断(硬中断): 外设的
6、 I/O 请求 可屏蔽中断 电源掉电 / 奇偶错 非屏蔽中断 内中断(软中断): INT 指令 / CPU 错(除法错、溢出)/ 为调试程序设置的中断,3. 中断传送方式,80x86 中断源:,设置CPU中断允许位: FLAGS 中的 IF 位 = 1 允许中断 ( STI ) = 0 禁止中断 ( CLI ) 设置中断屏蔽位: 中断屏蔽寄存器的中断屏蔽位 = 0 允许I/O设备请求中断 = 1 禁止I/O设备请求中断,中断的条件:,IN AL, 21H AND AL,0FDH OUT 21H,AL,类型0的(IP),类型0的(CS),类型1的(IP),类型1的(CS),类型N的(IP),类型
7、N的(CS),类型255的(IP),类型255的(CS),00000,00004,4*N,003FC,中断向量中断处理程序的入口 地址(段址):(偏址),中断向量表,用户可利用保留的中断类型号 扩充自己需要的中断功能。,CPU中断过程: (1)取中断类型:CPU type N (2)保护现场:FLAGS、CS、IP入栈 (3)IF=0, TF=0 (4)取中断向量:(4N) IP (4N2) CS (5)转中断处理程序,例:为中断类型 N 设置中断向量 MOV AX, 0 MOV ES, AX MOV BX, N*4 MOV AX, OFFSET INTHAND MOV ES: WORD PT
8、RBX, AX ;偏移地址(N*4) MOV AX, SEG INTHAND MOV ES: WORD PTRBX+2,AX ;段地址(N*4+2) INTHAND: ;中断处理程序 IRET,DOS 功能调用(21H)存取中断向量: 设置中断向量: AH = 25H AL = 中断类型号 DS : DX = 中断向量 INT 21H 取中断向量: AH = 35H AL = 中断类型号 INT 21H 返回时送 ES : BX = 中断向量,MOV AL, N MOV AH, 35H INT 21H ; 取原中断向量 PUSH ES PUSH BX ; 保存原中断向量 PUSH DS MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 输入输出 程序设计
链接地址:https://www.31doc.com/p-2583690.html