微机原理及应用 教学课件 作者 胡钢 第六章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
采用这种编址方式的典型微处理器有6800、6502、 68000等,其优点是简化指令系统的设计,同时I/O控制信号 与存储器的控制信号共用,给应用带来极大的方便,另外由 于访问存储器的指令种类多、寻址方式多样化,对访问外设 带来了很大的灵活性。对I/O设备可以使用功能强大且像访问 存储器那样的指令,如直接对I/O数据进行运算等。统一编址 的缺点是外设占用了一部分内存地址空间,减少了内存可用 的地址范围,对内存容量有潜在的影响。此外,从指令上不 易区分当前指令是对内存进行操作还是对外设进行操作。
外设地址空间和内存地址空间相互独立。如图7-3所 示。
00000H
内存地址
(IM)
00000H
FFFFFH
I/O地址 (64KB)
FFFFFH
图7-3 I/O端口独立编址方式
8086/8088的I/O端口采用独立编址方式,端口地址16 位,能取216=64K个不同的I/O端口地址。任何两个连续的8 位端口可作为一个16位端口,称为字端口。字端口类似于 存储器的字地址。I/O地址空间不分段。
二、独立编址
所谓I/O端口独立编址(I/O Mapped),也称为I/O隔离编 址或I/O指令寻址方式,即I/O端口地址区域和存储器地址区 域,分别各自独立编址。访问I/O端口使用专门的I/O指令, 而访问内存则使用MOV、ADD等指令。CPU在寻址内存和 外设时,使用不同的控制信号来区分当前是对内存操作还 是对I/O操作。在单CPU模式时,当前的操作是由I/O信号的 电平来区别的。对于8088CPU系统,当I/O为低电平时,表 示当前执行的是存储器操作,地址总线上地址是某个存储 单元地址;当I/O为高电平时,表示当前执行的是I/O操作, 地址总线上地址是某个I/O端口的地址。在多CPU模式时, 若访问存储器,则使MEMW或MEMR信号有效;而访问I/O 端口时,则使或信号有效。
在一个接口电路中可能含有多个I/O端口,其中用来接收 CPU的数据或将外设数据送往CPU的端口称为数据端口;用 来接收CPU发出的各种命令以控制接口和外设操作的端口称 为控制端口;用来接收反映外设或接口本身工作状态的端口 称为状态端口。
可见,CPU对外部设备的输入、输出操作实际上是通过 接口电路中的I/O端口实现的,即输入、输出操作归结为对相 应I/O端口的读/写操作。
对一个具有双向工作(即可输入又可输出)的接口电
路,通常有四个端口,即数据输入端口、数据输出端口、 控制端口和状态端口,其中输出数据端口和控制端口是只 写的,而数据输入端口和状态端口是只读的,实际中,系 统为了节省地址空间,往往将数据输入、输出端口对应赋 予同一端口地址,这样,当CPU利用该端口地址进行读操 作时,实际是从数据输入端口读取数数据,而当进行写操 作时,实际是向数据输出端口写入数据。同样,状态口和 控制口也赋予同一端口地址。
采用独立编址方式的特点是:I/O端口地址空间与存储 器空间完全独立:CPU使用专门的信号来区分是对存储器 访问还是对I/O端口进行访问。例如,在8086中,用M/IO (8088中用M/IO)信息来确定是对存储访问还是对I/O端口 进行访问,当M/IO=1(高电平)时,表示CPU是对存储器 进行访问(即进行读/写操作)当M/IO=0(低电平)时,表 示CPU是对I/O端口进行访问。独立编址时,CPU对I/O端口 的访问必须用专门的输入,输出指令(IN,OUT指令)来 实现数据的传送,而输入/输出数据的通道则与存储器共享 系统总线。一般在微机中,CPU是用地址总线的低位对I/O 设备寻址,在8086中用地址总线的低16位来进行I/O寻址, 可提供的I/O端口地址空间为64KB。
址方式是将每一个I/O端口作为存储器的一个单元看待,
即每一个端口占一个存储单元地址,即存储器和I/O共处
统一的地址空间,系统设计时,划分一部分存储空间作为
I/O地址空间。这时存储 器与I/O设备的唯一区别仅 00000H
是所占用的地址空间不同。
内存地址
如图7-2所示。
(960KΒιβλιοθήκη Baidu)
EFFFFH F0000H
第六章 输入/输出
第一节 输入/输出的编址方式 第二节 CPU与外设之间的数据传送 第三节 中断 第四节 8086/8088的中断方式 第五节 中断控制器8259A
第一节 输入/输出的编址方式
由I/O接口的典型结构可知,每一个I/O接口电路中都包 含有一组寄存器,主机和外设进行数据传送时,各类信息 (数据信息、控制信息和状态信息)在进入接口电路以后分 别进入不同的寄存器,通常把接口电路中CPU可以访问的每 一个寄存器或控制电路称为一个I/O端口。为便于CPU的访问, 每一个I/O端口都被赋予一个地址,称为I/O端口地址。
为便于CPU对I/O端口的访问,每个端口有一个端口地 址。那么,系统如何来给每个端口分配端口地址呢?这就 是I/O端口的寻址方式,在微型计算机系统中,端口的编址 通常有两种不同的方式,一是I/O端口与存储器单元统一编 址;二是I/O端口独立编址。
一、 存储器统一编址
统一编址方式也称为存储器映象I/O寻址方式。该寻
在统一编址方式下,CPU是对存储器访问还是对I/O端口 进行访问是通过地址总线的最高位状态(1或0)以及读、写 控制信号决定的。实际上,不论对哪个空间进行访问,CPU 均一视同仁地把它看成一个存储单元,是读出,还是写入由 读、写控制信号决定,至于是访问哪个空间(I/O空间还是存 储器单元),只要程序员编程时予以注意(给出合适地址) 即可。
FFFFFH
I/O地址 (64KB)
图7-2 存储器统一编址方式
一般指定I/O端口占用存储空间的高地址端,并选用地 址最高位作为I/O寻址“标志”,例如,对于64K的存储空间, 当A15为“1”时,高端的32K空间作为I/O端口地址空间;而 当A15为0时,低端32K地址空间作为存储器地址空间。之 所以选用地址最高位为I/O寻址标志,是因为对于地址最高 位,软件较容易控制。将地址空间的一半划给I/O端口,实 际中可能只用了极少的一部分,所以有时也可对部采用编 一编址方式时,CPU对I/O设备的管理,是用访问内存的指 令实现的。任何对存储器操作的指令都可用于对I/O端口的 访问。这就大大增加了程序设计的灵活性,并使CPU对外 设备的控制更方便。例如,可用传送指令MOV实现CPU内 寄存器和I/O端口间进行数据传送,可以用逻辑指令(AND, OR,TEST)来控制I/O端口中一些位的状态。分高位地址 进行译码,以确定具体的I/O空间。
相关文档
最新文档