第四章 指令系统层.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一台计算机所能执行的全部指令,称为该机的指令系统或指令集,具体内容包括指令格式、寻址方式、指令类型与功能。 相对微体系结构层,指令系统层是一个抽象的层次,它是硬件和软件之间的接口,其主要特征就是指令系统。 本章将以80x86为背景讨论指令系统层,主要内容包括: ? 80x86系列CPU的结构特点; ? 80x86主存储器和寄存器组织; ? 80x86指令系统。 4.1.1 8086/8088 CPU 1.8086/8088 CPU内部结构 模型机CPU指令串行执行。在CPU执行指令时,系统总线与主存可能空闲,因此程序执行效率不高。 8086/8088CPU采用指令流水线结构 总线接口部件BIU(Bus Interface Unit) 取指令(或取操作数) 执行部件EU(Execute Unit) 执行指令 EU和BIU两个部件并行工作, 指令的读取与执行部分重叠,从而提高了指令的执行速度。 8086 CPU内部结构如下图所示: 下面讨论EU和BIU的功能: (1)执行部件EU:执行指令 从指令队列中取出指令代码,由EU控制器进行译码后产生对应的控制信号到各部件以完成指令规定的操作。 对操作数进行算术和逻辑运算,并将运算结果的特征状态存放在标志寄存器中。 由于EU不直接与系统总线连接,因此当需要与主存储器或I/O端口传送数据时,EU向BIU发出命令,并提供给BIU 16位有效地址与传送的数据。 (2)总线接口部件BIU : 完成CPU与主存或I/O端口之间的信息传送 从主存取出指令送到指令队列中排队。 从主存或I/O端口取操作数或存放运算结果。 计算并形成访问主存的20位物理地址。 4.1.2 80386/80486CPU(过渡产品) 1.Intel 80386 32位地址,寻址空间为4GB。 具有片内存储管理部件,使虚拟存储空间(逻辑地址空间)可达64TB。 字长32位,系统总线的数据通路宽度32位。 采用多级流水线结构。 平均运算速度约为4 MIPS。 2.Intel 80486 4.1.3 Pentium系列CPU (Pentium CPU的功能结构图) 4.2.1 80x86 CPU的寄存器 1.80x86 CPU的寄存器分类(3大类) 基本结构寄存器组 : 通用寄存器、IP、FR、段寄存器。 系统级寄存器组 :(不能访问) 系统地址寄存器、控制寄存器、测试寄存器、调试寄存器。 浮点寄存器组 : (不讲,不做要求) 数据寄存器、标记字寄存器、指令和数据指针寄存器、控制字寄存器。 2.基本结构寄存器组 通用寄存器; 指令指针寄存器IP; 标志寄存器FR; 段寄存器 (16位) 。 (1)通用寄存器 AX(Accumulator)作为累加器用。在乘除等指令中指定用来存放操作数。另外,所有的I/O 指令都使用这一寄存器与外部设备传送信息。 eg1 MUL SRC AX?AL*SRC eg2 DIV SRC AL?AX/SRC 商 AH?AX/SRC 余数 eg3 MOV AH,4CH INT 21H 返回DOS BX(Base)可以作为通用寄存器使用。此外,在计算存储器地址时,它经常用作基址寄存器。 CX(Count)可以作为通用寄存器使用。此外,它还常用来保存计数值,如在移位指令、循环(LOOP)和串处理指令中用作隐含的计数器。 DX可以作为通用寄存器使用。一般在做双字长运算时把DX和AX组合在一起存放一个双字长数,DX用来存放高位字。此外,对某些I/O 操作,DX可用来存放I/O 的端口地址。 SP、BP、DI、SI 这4个16位寄存器可以像数据寄存器一样在运算过程中存放操作数,但它们只能以字(16位)为单位使用。此外,它们更经常的用途是在存储器寻址时,提供偏移地址。因此,可称它们为指针或变址寄存器。 下图说明了80x86 CPU中标志寄存器的内容: ① 条件码标志包括以下6位: OF(Over Flow Flag) 溢出标志。将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。 SF(Sign Flag) 符号标志。把指令执行结果看作带符号数,如结果为负,则SF置1;结果为

文档评论(0)

awang118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档