第五部分基本输入输出.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五部分基本输入输出

第五部分 基本输入输出 Assembly Language Programming IN和OUT指令 端口输入/输出 IN OUT 两种寻址方式 直接寻址 IN AL/AX, n OUT n, AL/AX n为端口地址,范围为0-255 间接寻址 IN AL/AX, DX OUT DX, AL/AX DX为端口地址,范围为0-64K 输入输出的控制方式 I/O设备与主机(CPU和存储器)的通信是通过外设接口进行的,传送控制、状态、数据三种不同的信息,IN/OUT指令执行这些操作。 程序控制方式 CPU利用指令反复查询I/O的状态,直到I/O准备好,才进行输入/输出。此间CPU处于循环等待状态,未做有效的工作。 中断方式 CPU在执行程序的同时兼顾对I/O设备的控制或数据传送。当I/O设备准备好(空闲),由I/O通知CPU暂停正在运行的程序,转而处理I/O设备的请求,处理完即返回主程序继续执行。 DMA方式 主要适用于高速I/O设备(如磁盘),CPU向I/O接口提供控制信息(如数据块的首地址及字节数),I/O设备直接和存储器进行成批数据的快速传送。 1 程序直接控制I/O方式 外设接口由一组寄存器(数据寄存器/状态寄存器/命令寄存器)组成,每个寄存器有一个端口地址(端口号),IBM-PC机的I/O地址空间可达64K(0000~FFFFH)。 I/O指令 例:测试某状态寄存器(端口号27H)的第2位是否为1 IN AL, 27H TEST AL, JNZ ERROR 软件中断 vs. 硬件中断 中断源:引起中断的事件 外中断(硬中断):外设的I/O请求 —— 可屏蔽中断 电源掉电/奇偶错 —— 非屏蔽中断 内中断(软中断):INT指令/CPU错(除法错、溢出) 硬件中断 触发的事件来源于硬件,例如I/O设备完成I/O操作 事件可发生在程序执行的任何时候 CPU在每条指令执行完毕,检查是否发生了硬件中断 软件中断 触发的事件来源于程序中软件中断指令(也称为系统调用指令) 通过运行软件中断指令,CPU处理中断 中断处理程序和中断向量 中断处理程序 操作系统中处理特定中断的函数 该函数以IRET返回,而非RET 中断向量表 由256个中断向量组成 每个中断向量都是由4字节的相应的中断处理程序的入口地址组成 较高2字节的地址对应中断处理程序的CS地址 较低2字节的地址对应中断处理程序的IP地址 占用内存低端地址的1024字节的区域 中断调用和返回 INT vs. IRET INT指令 格式:INT interrupt_type 动作: 标志寄存器入栈,然后TF和IF清0 CS 和 IP 依次入栈 根据interrupt_type设置CS:IP 中断向量的地址 IRET指令 格式:IRET 动作: 将堆栈中保存的IP内容弹回到IP 将堆栈中保存的CS内容弹回到CS 将堆栈中保存的标志寄存器内容弹回到标志寄存器 BIOS vs. DOS系统调用 BIOS功能调用是对DOS或者用户程序服务的基本I/O请求操作的服务. BIOS functions: INT 0 到 INT 1BH DOS system calls: INT 21H 各种不同的系统调用功能是由AH指定的 1 DOS 系统调用 Assembly Language Programming 字符的显示 INT 21H with 02H 显示一个字符 INT 21H with 02H 输入: AH: 09H DL: 显示的字符 例: MOV AH, 02H MOV DL, 53H ;’S’ INT 21H 字符串的显示 INT 21H with 09H 显示字符串 INT 21H 输入: AH: 09H DX: 串的起始地址偏移量 该串的结束符号必须是 ‘$’ 例: MSG DB NAME?, $‘ …… MOV AH, 09H LEA DX, MSG INT 21H 键盘输入INT 21H with 0AH 第1步:键盘输入参数表 PARA_LIST LABEL BYTE MAX_LEN DB 20 ACT_LEN DB ? KB_DATA DB 20 DUP(‘ ’) 第2步:功能设置 MOV AH, 0AH LEA DX, PARA_LIST INT 21H 综合例子 提示用户输入姓名,然后用户输入不超过20个字符 控制字符的显示 根据其ASCII码显示出来 2 BIOS功能调用 Assembly Language Programming 屏幕的特征 25行,80列 文本显示按页存储,编号从

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档