- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 输入输出程序设计 10.1 I/O指令寻址与数据传送 10.2 I/O接口程序设计 10.3 发声与异步通信程序设计 10.4 汇编语言与高级语言的混合编程 10.1 I/O指令寻址与数据传送 10.1.1 I/O指令端口寻址 10.1.2 直接程序控制输入输出方式 10.1.3 程序查询输入输出方式 10.1.4 中断输入输出方式 10.1.5 数据通道输入输出方式 10.1 I/O指令寻址与数据传送 任何一种输入输出设备都要通过一个硬件接口或控制器与CPU相连。 这些接口和控制器都能支持输入输出指令IN、OUT与外部设备交换信息。这些信息包括控制、状态和数据三种不同性质的信息,它们必须按不同的端口地址分别传送。如图10.1所示: 图 10.1 I/O接口示意图 10.1 I/O指令寻址与数据传送 控制信息:输出到I/O接口,告诉接口和设备要做什么工作; 状态信息:表示I/O设备当前的状态; 数据信息:则是I/O设备和CPU真正要交换的信息。 10.1 I/O指令寻址与数据传送 微机系统具有一系列简单而又灵活的输入输出方式。例如用IN和OUT指令直接在端口级上处理输入输出的程序直接控制I/O的方式,应用程序查询外部设备的状态,进行数据交换的输入输出方式,还有中断传送方式和数据通道方式等等。 10.1.1 I/O指令端口寻址 端口(Port):通过端口与外部设备进行通信。 I/O端口地址:为了存取接口上的寄存器,系统给这些寄存器分配专门的存取地址,这样的地址称为I/O端口地址。 10.1.1 I/O指令端口寻址(续) I/O端口地址和存储单元地址采用统一编址。 但这会减少原本就有限的一部分存储空间,同时由于访问内存的指令一般超过2字节,从而延长了外部设备与处理器进行数据交换的时间。 在微机系统中,一般不采用统一编址的端口寻址方式。 输入指令 I/O指令属于数据传送指令组。 输入指令的一般格式如下: IN 累加器,端口地址 输入指令从一个输入端口读取一个字节或一个字,传送至AL(若是一个字节)或AX (若是一个字)。 端口地址 直接方式:端口地址仅为8位,即0~255 间接方式:端口地址存放在DX中,端口地址可为16位。 输入指令 (续) 直接端口寻址:端口地址PORT是一个8位的立即数 IN AL,PORT ;(PORT)→AL IN AX,PORT ;(PORT+1:PORT)→AX 例如: IN AL,21H 间接端口寻址,端口地址在寄存器DX中。当端口地址超过255时,只能采用DX间接端口寻址 IN AL,DX ;(DX)→AL IN AX,DX ;(DX+1:DX)→AX 例如: MOV DX,2FCH IN AX,DX 输出指令 输出指令的一般格式如下: OUT 端口地址,累加器 输出指令将AL中的一个字节,或在AX中的一个字,输出到指定端口。 像输入指令一样,端口地址可采用直接方式表示,也可采用间接方式表示。 直接方式:端口地址仅为8位,即0~255; 间接方式:端口地址存放在DX中,端口地址可为16位。 输出指令(续) 所以输出指令也有如下四种具体格式: OUT PORT,AL ;AL → PORT OUT PORT,AX ;AX → PORT+l :PORT OUT DX,AL ;AL → DX OUT DX,AX ;AX → DX+1:DX 10.1.1 I/O指令端口寻址(续) I/O指令端口地址没有用分段寻址,因而端口地址为0~65535的64KB范围。 进行I/O数据交换的指令是AL或AX与I/O空间进行交换,这些指令只起传送数据的作用。 如果要对状态寄存器进行测试、设置等操作,还要取回I/O状态数据到AL或AX,然后对AL或AX进行测试、设置等操作,结果再写入I/O状态寄存器。 10.1.1 I/O指令端口寻址(续) 对I/O端口的操作除了可以利用AL/AX输入/输出一个字节或字外,在32位的系统中还支持通过EAX的双字节数据操作。例如: OUT 20H, EAX 数据传送方式一般分为直接传送、程序查询传送、中断传送和数据通道传送等四种方式。实现数据输入输出,通常由I/O指令来完成。 10.1.2 直接程序控制输入输出方式 在计算机系统中,对于一些工作速度较慢、接口电路较简单的外部设备,不需要查询设备的状态,即已知外设已准备好或不忙时,可以直接使用IN或OUT指令实现数据传送。 这种方式软件实现简单,只要在指令中指明端口地址,就可进行数据的输入和输
文档评论(0)