CHAP2-8086CPU合编.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.1 8086微处理器的结构;;1.执行部件EU (1)EU的功能 ① 从BIU的指令队列缓冲器中取出指令,由EU控制器的指令译码器译码产生相应的操作控制信号给各部件 ② 对操作数进行算术运算和逻辑运算,并将运算结果的状态特征保存到状态寄存器FR中 ③ EU不直接与CPU外部系统相连,当需要与主存储器或I/O设备交换数据时,EU向BIU发出命令,并提供给BIU16位有效地址及所需传送的数据 (2)EU的组成。 EU由算术逻辑单元ALU,通用数据寄存器组,地址指针和变址寄存器,标志寄存器,数据暂存寄存器和EU控制器组成;(3)EU的特点 ① 通用数据寄存器AX,BX,CX,DX,既可以作16位寄存器使用,也可以分成高、低8位分别作两个8位寄存器使用 ② ALU的核心是16位二进制加法器 ③ 16位状态标志寄存器(7位未用)存放操作后的状态特征和设置的控制标志。 ④ EU控制器是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。 2.总线接口部件BIU (1)BIU的功能 ① BIU从主存取指令送到指令队列缓冲器。 ;② CPU执行指令时,总线接口单元要配合EU从指定的主存单元或外设端口中取数据,将数据传送给EU或把EU的操作结果传送到指定的主存单元或外设端口中 ③ 计算并形成访问存储器的20位物理地址 (2)BIU的组成。 BIU由4个16位段寄存器、16位指令指针寄存器、20位物理地址加法器、6字节指令队列及总线控制逻辑组成。 (3)BIU的特点: ① 指令队列是由6个字节的寄存器组成(8088指令队列由4个字节组成)。 ② 地址加法器是用来产生20位存储器物理地址的。 ③ 8086分配20条引脚线分时传送20位地址,16位数据和4位状态信息。 ;20位物理地址和16位段基址、 16位段内偏移量之间的关系;物理地址和段基址、偏移地址的关系;如果段基址x不变,y加一,物理地址z相当于在x段内上移一个字节。 如果段基址x加一,相当于整个段向上移动16个字节。 段基址x用来表示这个段的高低位置,偏移地址y用以表示某一字节相对于该段底部的高度。 对于x值较大的高段,整个段64K字节的底部除了覆盖1M内存的顶部以外,64K字节的顶部也覆盖了1M内存的底部。 由y取值范围为0000—FFFFH决定了每个段的高度都相同,均为264即64K字节。由x的取值范围为0000—FFFFH决定了总共有264即64K个段。;1M内存空间里任一字节单元的物理地址是固定不变的,但是可以为多个段基址x和偏移地址y的组合,即其逻辑地址不是唯一的,亦即可以被多个段覆盖。 根据z=10H*xmax+ymin=10H*xmin+ymax,可计算出覆盖1M空间里任意一个字节的最高段xmax和最低段xmin,并由此可以计算出任意一个字节都可被4096个段覆盖。 ;例1: z=56789H=10H* xmax+ymin=10H* xmax+0009H,则xmax=5678H。 且 z=56789H=10H*xmin+ymax=10H*xmin+FFF9H,则xmin=4679H。 共有xmax- xmin+1=5678H-4679H+1=1000H=4096个段覆盖。 注意ymin和ymax的最低位必须与z的最低位相同,这样才能计算得到整数x。;例2: z=01235H=10H* xmax+ymin=10H* xmax+0005H, 则xmax=0123H。 且 z=01235H=10H*xmin+ymax=10H*xmin+FFF5H, 可推算出xmin=F124H 共有xmax- xmin+1=0123H-F124H+1=1000H=4096个段覆盖。 ;8086 CPU利用段基址x和偏移地址y进行运算得到物理地址这种方式的优点是: 可将代码、数据、堆栈、附加数据等置于不同的段,避免重叠;需要时当然也可重叠使用。 只需改变段基址,即可将整个段上移或者下移,但不改变段内数据的相互位置关系。编程时使用逻辑地址描述,给程序设计带来很大的灵活性。 ;小结;x的物理意义是该段的高低位置,由x的取值范围为0000-FFFFH,决定了总共有65536即64K个段。X加/减1则整个段则上/下移16个字节。 y的物理意义是该段内某个字节单元相对于该段最底部的高度,亦即所谓的偏移量。若x不变,y加减1,则对应的内存单元在该段内上/下移一个字节。y的取值范围也为0000-FFFFH,由此决定了任何一个段的大小或高度均为64KB。 高段除了覆盖高地址单元以外,超过1M部分则折返至低地址单元。1MB空间里的任意一个内存单元均可被4K即4096个段所覆盖。;8086 CPU利用段基址x和偏移地址y进行运算得到物理地址这种方式的优点是: 可将代码、数据、堆栈、

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档