- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
献给正为信息化建设事业作出杰出贡献的人们.ppt
第四章 8086/88CPU与指令系统 4.1 8086/8088 CPU 8086是16位微处理器,即CPU的内外数据总线为16位,一个总线周期可以传送一个字(16位)数据。 而8088是准16位微处理器,其CPU的内部总线为16位,外部数据总线为8位,因此一个总线周期只能传送一个 字节。但是两者的内部结构基本上是相同的,其地址引脚均为20位,可寻址1M字节(Byte)主存空间。 8086/8088的指令系统完全相同,在软件上是完全兼容的。 4.1.1 8086/8088CPU的结构 1.内部结构 8086/8088的内部结构如图4-2所示。下面分别讨论EU与BIU部件。 (1)执行部件EU 包括一个16位算术逻辑运算部件ALU(arithmetic logic unit)、一组通用寄存器、暂存器、标志寄存器,以及EU控制器。各寄存器和内部数据通路都是16位。EU的主要任务是执行指令.其功能为: .从指令队列中取出指令代码,由EU控制器进行译码后产生对应的控制信号到各部件以完成指令规定的操作。 .对操作数进行算术和逻辑运算,并将运算结果的特征状态存放在标志寄存器中。 .由于EU不直接与系统总线连接,因此当需要与主存储器或I/O端口传送数据时,EU向BIU发出命令,并提供给BIU16位有效地址与传送的数据。 (2)总线接口部件BIU . 包括-组段寄存器、指令指针、6字节的指令队列(8088是4字节)、20位总线地址形成部件,以及总线控制逻辑。BIU的主要任务是完成CPU与主存储器或I/O端口之间的信息传送,其功能为: .从主存取出指令送到指令队列中排队。 .从主存或I/O端口取操作数或存放运算结果。 .计算并形成访问主存的20位物理地址。 2. 8086/8088主存地址的形成 将1M字节主存空间划分为若干段,每个段的最大长度为64K字节。相应地在BIU中设置段寄存器,用以存放20位段起始地址的高16位,称为段基值(segment base value)。由EU或指令指针lP提供段内的偏移量,即一个主存单无与所在段的段基址之间的字节距离。当CPU访问某个主存单元时,必须指明由哪个段寄存器提供段基值,同时又给出偏移量。然后由BIU将16位段基值左移4位后与16位偏移量相加,形成20位主存单元的物理地址,如图4-3所示。段基值左移4位后,得到一个20位的物理地址称为段基址(segment base address)。显然,段基址为xxxx0H,其低4位二进制数为0,即能被16整除的主存物理地址才可作为段基址。 4.1.2 8086/8088寄存器 8086/8088CPU中的寄存器包括段寄存器、通用寄存器以及用于控制的寄存器,如图4-4所示。下面介绍它们的功能。 1.段寄存器(Segment Register) CS(代码段寄存器)——代码段(code segment)用来存放程序的指令代码序列。CS用来存放当前代码段段首址的高16位,即段基值。 DS(数据段寄存器)——数据段(data segment)中存放程序的有关数据。DS用于存放当前数据段的段基值。 SS(堆栈段寄存器)——堆栈段(stack segment)用于存放按后进先出顺序存取的信息。SS中存放当前堆栈段的段基值。 ES(附加段寄存器)——附加段(extra segment)中常存放运算结果或辅助数据。ES中存放当前附加段的段基值。 2.通用寄存器(General Register) EU中设置有8个16位通用寄存器,如图4一4所示,按使用情况可分为二种。 (1)地址指针寄存器(Address Pointer Register) 8086/8088访问主存单元的20位物理地址是由两个16位地址合成的:由16位的段寄存器给出段基址的高16位;由EU或指令指针给出相对该段基址的偏移量。执行部件EU中的4个16位地址指针寄存器通常用来提供全部或部分偏移量。 堆栈指针SP和基址指针BP通常用来作地址指针。 SP是特定用于存放堆栈段中栈顶字单元相对堆栈段基址的偏移量。在执行堆栈指令操作时,隐含使用的就是堆栈指针SP。在指令中用BP作地址指针时,如果未另外说明,它也是用于指向堆栈段内某一主存单元(字或字节)。BP除了作地址指针外,还可以用来存放参加运算的16位操作数或运算结果。 源变址寄存器SI和目的变址寄存器DI通常也用来作地址指针。在变址寻址中,
文档评论(0)