- 1、本文档共83页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 8086cpu管脚及其功能
CPU是通过总线来管理存储器的,具体地说,是通过地址总线的编码对存储器寻址,通过控制总线中的读控制和写控制信号控制信息的读出和写入,数据总线则是读出和写入信息的传递通道。 由于存贮器划分为模块,所以地址总线的高位可用来选择模块,低位用来对模块内的存储单元寻址。 1、存储器的地址编码方式 不论具体机器中存储器是由多少个模块组成,在逻辑上可以想象成存储器是一个各单元地址编码连续排列的空间。对8086/88系统这个空间为1兆编码,可用十六进制表示为00000H--FFFFFH,亦可用20位二进制码表示,如上图所示。 由于微型计算机的存储器总是以8位数据线(称为一个字节)为单元来组织的,每个单元对应一个唯一的地址,所以8086/88CPU能管理的存储器最大规模为1兆字节。 在计算机技术中,把CPU对存储单元的选择称为寻址。 注意: 当数据被定义成字节后,可放在任意一个单元。但数据被定义成字后,必须放在两个连续的地址单元中。 2、数据在存储器中的存储格式 一个字中的每个字节,都对应一个地址,字的低字节(低8位)总是存放在低地址单元中,高字节(高8位)存放高地址单元中,把低字节单元的地址称为字的地址(如下图所示)。字的各位的编号方法是最低位(LSB)为位0,最高位的编号为位15。 ?8086/8088允许字从任何地址开始。字的地址是偶地址时,称字的存贮是对准的,若字的地址是奇地址时,则称字的存贮是未对准的。8086CPU数据总线16位,访问一个偶地址的字数据需要一个总线周期,而访问一个奇地址的字数据则需要两个总线周期(?)(CPU自动完成)。 由于8088CPU数据总线是8位的,因此,无论访问偶地址或奇地址的字,都需要两个总线周期完成。 三、存储器的分段 为什么分段 8086存储器分4个段 段基地址与段寄存器 偏移地址的产生 逻辑地址、物理地址 1.存储器的分段与物理地址的形成 我们知道,8086/8088具有20条地址总线,但CPU内部提供地址的寄存器BX、IP、SP、BP、SI和DI及算术逻辑单元ALU都是16位,只能直接处理16位地址,即寻址范围为64k字节。如何扩大寻址范围形成20位地址呢?8086/8088巧妙的采用了地址分段的方法,将寻址范围扩大到1兆字节。 8086/8088中,把1兆字节的存储空间划分成若干个逻辑段,每段最多为64K存储单元,最小可为16个存储单元。 一个段的起始地址的高16位被称为该段的地址。 段内一个存储单元的地址,可用相对于段起始地址的偏移量来表示,这个偏移量称为段内偏移地址,也称有效地址EA。 CPU对存储单元内的数据进行处理时,使用的是逻辑地址来指定存储器。逻辑地址由段地址和偏移地址两部分组成,都是用4位十六进制数表示。逻辑地址的表示格式为:????????????????段地址:偏移地址 每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码,在CPU通过总线对存储器进行操作时,需利用物理地址来查找所需访问的存储单元。 段基地址和偏移地址组成了逻辑地址 格式为:段基地址:偏移地址 60002H 00H 12H 60000H 0 0 0 0 段基地址(16位) 段首地址 × × × ? ? ? × × × 物理地址=段基地址×16+偏移地址 在8086/88 CPU的BIU单元中的加法器就是用来完成这一由逻辑地址到物理地址运算的,从而实现了输出20位地址线以保证了对1MB内存的寻址。 物理地址的形成 ∑ 0 15 段内偏移地址 段寄存器 19 4~0 0000 段地址左移4位 20位物理地址 19 0 5 8086分段的好处 1、解决了16位地址寄存器对20位物理地址的寻址问题 2、实现了程序代码的浮动装配 8086复位后程序运行的起始地址 3.6对I/O端口的管理 I/O设备包括与总线相接的多种外设, 例:显示器、打印机、键盘及存储大容量信息的磁盘等。但I/O设备速度比CPU慢得多,不能直接和总线连接。需要通过I/O接口同CPU进行信息和数据的传递。而I/O接口与CPU之间的通信是利用称为I/O端口的寄存器来完成的。一个I/O端口有唯一的I/O地址与之对应。 8086/8088地址总线的低16位用来对8位I/O端口寻址,所以8086/8088的I/O地址空间是0-65535,即可以访问65536个8位I/O端口。 虽然I/O地址线和存储器地址线是公用的,但利用控制总线中M/IO*信号可以区分是I/O存取还是存储器存取。任何两个地址连续的8位I/O端口,都可以当作一个16位I/O端口,亦即类似存储器的字。对8086也像存储器的字那样,每次要实现奇地址开始的16位I/O端口输入输出,都
文档评论(0)