版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 微处理器和指令系统微处理器和指令系统 参考书目:参考书目: 1、计算机组成技术计算机组成技术 李东,黄李东,黄 庆成等主编庆成等主编 电子工业出版社电子工业出版社 2、计算机组成原理计算机组成原理唐朔飞唐朔飞 主主 编编 高等教育出版社高等教育出版社 1 2 第二章第二章 微处理器和指令系统微处理器和指令系统 2.1 2.1 8086微处理器的内部结构微处理器的内部结构 2.22.2 寻址方式寻址方式 2.3 2.3 处理器的指令系统处理器的指令系统 2.42.4 流水线技术流水线技术 2.2.5 5 RISCRISC 3 微处理器概述:微处理器概述: 从外观上看处理器:矩形或正
2、方形的块状从外观上看处理器:矩形或正方形的块状 物,通过众多引脚(也称管脚)与主板相连。物,通过众多引脚(也称管脚)与主板相连。 片内总线:片内总线:处理器内部,分为片内控制总线处理器内部,分为片内控制总线 和片内数据总线。和片内数据总线。 片外总线:片外总线:处理器与主存储器和输入处理器与主存储器和输入/输出设输出设 备之间信号传输的线路,简称总线。备之间信号传输的线路,简称总线。 2.1 8086微处理器的内部结构微处理器的内部结构 4 8086 8086 是是全全1616位位微处理器微处理器 (内外数据总线都为(内外数据总线都为1616位)位) 8088 8088 是是准准1616位位微
3、处理器微处理器 ( (内数据总线为内数据总线为1616位,外位,外 数据总线为数据总线为8 8位位) ) q8086/80888086/8088除了外数据总线位数及与此相关的部分逻辑除了外数据总线位数及与此相关的部分逻辑 稍有差别外稍有差别外, ,内部结构和基本性能相同内部结构和基本性能相同, ,指令系统完全兼容。指令系统完全兼容。 5 8086的引脚图的引脚图 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 地 AD14
4、 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK 地 Vcc (5V) AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD (RQ/GT0 ) HLDA ( RQ/GT1 ) WR ( LOCK ) M/IO ( S2 ) DT/R ( S1 ) DEN ( S0 ) ALE ( QS0 ) INTA ( QS1 ) TEST READY RESET ADi表示地表示地 址总线与址总线与 数据总线数据总线 复用同一复用同一 个引脚个引脚 Ai
5、/Si表示地表示地 址总线与控址总线与控 制总线复用制总线复用 同一个引脚。同一个引脚。 这叫做这叫做总线总线 分时复用分时复用。 6 8088的引脚图的引脚图 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 地 A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK 地 Vcc (5V) A15 A16/S3 A17/S4 A18/S5
6、 A19/S6 SS ( HIGH ) MN/MX RD HOLD (RQ/GT0 ) HLDA ( RQ/GT1 ) WR ( LOCK ) M/IO ( S2 ) DT/R ( S1 ) DEN ( S0 ) ALE ( QS0 ) INTA ( QS1 ) TEST READY RESET 8位的数据总线位的数据总线 NMI非屏蔽中断非屏蔽中断 请求信号输入请求信号输入 INTR可屏蔽中可屏蔽中 断请求信号输入断请求信号输入 INTA中断响中断响 应信号输出应信号输出 地址锁存信地址锁存信 号输出号输出 7 电源引脚(电源引脚(Vcc),接地引脚(),接地引脚(GND) 按照传输信号类别
7、的不同,这些引脚可以按照传输信号类别的不同,这些引脚可以 分为分为数据总线引脚数据总线引脚、地址总线引脚地址总线引脚和和控制控制 总线引脚总线引脚 数据总线引脚:数据总线引脚: 若数据总线的宽度是若数据总线的宽度是8位,则数据总线引脚将被命名位,则数据总线引脚将被命名 为为D0,D1,D7; 若数据总线的宽度是若数据总线的宽度是16位,则数据总线引脚将被命名位,则数据总线引脚将被命名 为为D0,D1,D15。 8 地址总线引脚:地址总线引脚: 若处理器的访存地址宽度是若处理器的访存地址宽度是10位,则地址总线位,则地址总线 引脚将被命名为引脚将被命名为A0,A1,A9; 若处理器的访存地址宽度
8、是若处理器的访存地址宽度是20位,则地址总线位,则地址总线 引脚将被命名为引脚将被命名为A0,A1,A19 控制总线引脚控制总线引脚:时钟:时钟CLK、复位、复位RESET、 总线请求总线请求HRQ、总线允许、总线允许HLDA、中断请求、中断请求 INTR、中断响应、中断响应INTA、读、读RD、写、写WR等。等。 9 q在在8086/80888086/8088的设计中,引入了两的设计中,引入了两 个重要的结构概念:个重要的结构概念: 1 1、指令流水线、指令流水线 2 2、存储器分段管理、存储器分段管理 这两个概念在以后升级的这两个概念在以后升级的IntelIntel系列微处理器中一直被系列
9、微处理器中一直被 沿用和发展。正是这两个概念的引入,使沿用和发展。正是这两个概念的引入,使8086/80888086/8088比原来比原来 的的8 8位位MPUMPU在运行速度、处理能力和对存储空间的访问等性能在运行速度、处理能力和对存储空间的访问等性能 方面有很大提高。方面有很大提高。 10 8086/8088 在结构上分为:在结构上分为: 总线接口部件总线接口部件(Bus Interface Unit, BIU) 执行部件执行部件 (Executing Unit, EU) 总线接口部件负责总线接口部件负责取指令取指令,执行部件负责,执行部件负责执执 行指令行指令,从而构成了一个,从而构成了
10、一个“两段的流水线两段的流水线”。 取指令取指令1 执行指令执行指令1 时间时间T EU BIU 取指令取指令2 执行指令执行指令2 取指令取指令3 执行指令执行指令3 1、指令流水线结构 11 654321 通通 用用 寄寄 存存 器器 组组 AX BX CX DX 外外 部部 总总 线线 内部暂存器内部暂存器 IP ES SS DS CS 运算寄存器运算寄存器 ALU 标标 志志 输入输出输入输出 控制电路控制电路 执行部分执行部分 控制电路控制电路 执行部件执行部件(EUEU) 总线接口部件总线接口部件(BIUBIU) 内内 部部 总总 线线 地址加地址加 法器法器 16位位 16位位
11、20位位 16位位 (1)执行部件)执行部件EU 执行部件的执行部件的功能功能就是负责从指令队列取指令并执行。就是负责从指令队列取指令并执行。 从结构图可见,执行部件由下列几个部分组成:从结构图可见,执行部件由下列几个部分组成: (1 1)算术逻辑单元)算术逻辑单元ALU ALU (2 2)标志寄存器)标志寄存器FLAGFLAG; (3 3)数据暂存寄存器;数据暂存寄存器; (4 4)通用寄存器组:)通用寄存器组: 包括包括4个个16位位位数据寄存器 AXAX、BXBX、CXCX、DXDX; 4个个16位地址指针与变址寄存器位地址指针与变址寄存器SP, BP, SI, DI。 (5)EU控制电
12、路控制电路 (2)总线接口部件)总线接口部件 (BIU) 总线接口部件总线接口部件根据执行部件的请求,根据执行部件的请求,负责与存储器、负责与存储器、 I/OI/O端口传送数据端口传送数据。由下列各部分组成:。由下列各部分组成: (1 1)4 4个段地址寄存器;个段地址寄存器; CSCS1616位的代码段寄存器;位的代码段寄存器; DSDS1616位的数据段寄存器;位的数据段寄存器; ESES1616位的扩展段寄存器;位的扩展段寄存器; SSSS1616位的堆栈段寄存器;位的堆栈段寄存器; (2 2)1616位的指令指针寄存器位的指令指针寄存器IPIP; (3 3)2020位的地址加法器;位的
13、地址加法器; (4 4)6 6字节的指令队列缓冲器。字节的指令队列缓冲器。 (3)“流水线流水线”结构结构 l每当8086的指令队列中有1个或2个空字节,BIU 就会自动把指令取到指令队列中。而同时EU从指 令队列取出一条指令,并用几个时钟周期去分析、 执行指令。 l当指令队列已满,而且EU对BIU又无总线访问请 求时,BIU便进入空闲状态。 l在执行转移、调用和返回指令时,指令队列中的 原有内容被自动清除,并要求BIU从新的地址重新 开始取指令,新取的第一条指令将直接经指令队 列送到EU去执行,随后取来的指令将填入指令队 列缓冲器。 寄存器寄存器用来暂时存放参加运算的操作数和用来暂时存放参加
14、运算的操作数和 运算过程中的中间结果,使得在程序执行运算过程中的中间结果,使得在程序执行 的过程中不必每时每刻都要到存储器中存的过程中不必每时每刻都要到存储器中存 取数据。取数据。 8086 CPU中可供编程使用的有中可供编程使用的有14个个16位位 寄存器寄存器,按其用途可分为,按其用途可分为3类:类:通用寄存器、通用寄存器、 段寄存器、指针和标志寄存器段寄存器、指针和标志寄存器。 l 8086/8088 的寄存器组结构的寄存器组结构 16 DI SI BP SP DL DH CLCH BLBH ALAH FR IP ES SS DS CS 数据寄存器数据寄存器 指针指针寄存器寄存器 和和
15、变址寄存器变址寄存器 段寄存器段寄存器 指令指针指令指针 标志寄存器标志寄存器 AX BX CX DX 作为作为累加器累加器用,在加法运算中参用,在加法运算中参 与运算,结果存于累加器中;与运算,结果存于累加器中; 所有的所有的I/O指令都隐含地使用指令都隐含地使用AX 与外部设备传送信息。与外部设备传送信息。 作为通用寄存器使用作为通用寄存器使用 在采用基址寻址方式时,用作在采用基址寻址方式时,用作 基址寄存器基址寄存器 作为通用寄存器使用;作为通用寄存器使用; 常用来保存计数值,如在移位指常用来保存计数值,如在移位指 令、循环指令和串处理指令中用令、循环指令和串处理指令中用 作隐含的作隐含
16、的计数器计数器。 作为通用寄存器使用;作为通用寄存器使用; 在一些指令中,通常用它来存放在一些指令中,通常用它来存放 数据,所以又称为数据,所以又称为数据寄存器数据寄存器; 在做双字长运算时,将在做双字长运算时,将DX和和AX 组合在一起存放双字长数,用组合在一起存放双字长数,用DX 存放高位字。存放高位字。 当前代码段的段地址,指令就是从这段取出当前代码段的段地址,指令就是从这段取出 当前代码段的偏移地址。当前代码段的偏移地址。又称为又称为程序计数器程序计数器, 控制程序中指令执行的顺序控制程序中指令执行的顺序 基址基址指针寄存器,指示一组数据的起始地址指针寄存器,指示一组数据的起始地址 源
17、变址寄存器源变址寄存器 目的变址寄存器目的变址寄存器 用于确定数据段中某一用于确定数据段中某一 存储单元的地址存储单元的地址 指向数据段,程序变量存于此段指向数据段,程序变量存于此段 指向附加段,这个段用来存放经过处理的中间数据指向附加段,这个段用来存放经过处理的中间数据 堆栈堆栈指针寄存器,指示堆栈栈顶的偏移地址指针寄存器,指示堆栈栈顶的偏移地址 指向堆栈段,堆栈操作使用这段存储空间指向堆栈段,堆栈操作使用这段存储空间 17 8086/8088的标志寄存器(的标志寄存器(FR):): (1)状态标志:状态标志:状态标志表示前面操作执行后,算术逻辑单元所处状态标志表示前面操作执行后,算术逻辑单
18、元所处 的状态,这些状态常作为后继指令执行的条件。的状态,这些状态常作为后继指令执行的条件。 状态标志有状态标志有6个:个:符号标志(符号标志(SF)、零标志)、零标志(ZF)、奇偶标志、奇偶标志 (PF)、进位标志、进位标志(CF)、辅助进位标志、辅助进位标志(AF)和溢出标志和溢出标志(OF)。 (2)控制标志:控制标志:是人为设置的,每一个控制标志负责控制某一是人为设置的,每一个控制标志负责控制某一 种特殊的功能。种特殊的功能。 控制标志有控制标志有3个:个:方向标志方向标志(DF)、中断标志、中断标志(IF)和陷阱标志和陷阱标志 (TF) 18 状态标志状态标志 (1)符号标志符号标志
19、SF。与计算结果的最高位相同,表示计。与计算结果的最高位相同,表示计 算结果的正算结果的正/负。负。0表示正,表示正,1表示负。表示负。 (2)零标志零标志ZF。若计算结果为零,则。若计算结果为零,则ZF=1,否则,否则=0。 (3)奇偶标志奇偶标志PF。若计算结果的低。若计算结果的低8位中位中1的个数为偶的个数为偶 数,则数,则PF=1,否则,否则=0。 (4)进位标志进位标志CF。若执行的加法运算在最高位产生进。若执行的加法运算在最高位产生进 位,或者执行的减法运算引起最高位产生借位,则位,或者执行的减法运算引起最高位产生借位,则 CF=1,否则,否则=0。此外,带进位的循环移位也可能会。
20、此外,带进位的循环移位也可能会 改变改变CF。可以用指令。可以用指令STC将将CF置置1,用指令,用指令CLC将将 CF清清0,用指令,用指令CMC将将CF取反。取反。 19 状态标志状态标志 (5)辅助进位标志辅助进位标志AF。若执行加法运算时第。若执行加法运算时第3位向第位向第4 位进位(即低半字节向高半字节),或者执行减法运位进位(即低半字节向高半字节),或者执行减法运 算时第算时第3位从第位从第4位借位,则位借位,则AF=1,否则,否则=0。 (6)溢出标志溢出标志OF。若计算过程产生溢出,则。若计算过程产生溢出,则OF=1,否,否 则则=0。溢出是指字节运算的结果超出了。溢出是指字节
21、运算的结果超出了128+127的的 范围,或者字运算的结果超出了范围,或者字运算的结果超出了32768+32767的范的范 围。在进行加法运算时,每当次高位向最高位有进位围。在进行加法运算时,每当次高位向最高位有进位 而最高位没有向前进位,或者最高位向前进位而次高而最高位没有向前进位,或者最高位向前进位而次高 位没有向最高位进位,则位没有向最高位进位,则ALU置置OF为为1。 20 控制标志控制标志 (1)方向标志方向标志DF。这是控制串操作指令的标志。若。这是控制串操作指令的标志。若DF=0, 则串操作过程中地址将不断增值,否则不断减值。可用则串操作过程中地址将不断增值,否则不断减值。可用
22、指令指令STD将将DF置置1,用指令,用指令CLD将将DF清清0。 (2)中断标志中断标志IF。这是控制可屏蔽中断的标志。如果。这是控制可屏蔽中断的标志。如果IF=0, 则则8086/8088对可屏蔽中断请求不能做出响应,否则可以对可屏蔽中断请求不能做出响应,否则可以 响应可屏蔽中断请求。可用指令响应可屏蔽中断请求。可用指令STI将将IF置置1,用指令,用指令 CLI将将IF清清0。 “将将IF置置1”称为称为“开中断开中断”,“将将IF清清0”称为称为“关中关中 断断”。 21 控制标志控制标志 (3)陷阱标志陷阱标志TF。这是控制。这是控制8086/8088是否进入单步执是否进入单步执 行
23、状态的标志。若行状态的标志。若TF=1,则,则8086/8088进入单步执行进入单步执行 状态或跟踪方式执行指令状态,即每条指令执行完后,状态或跟踪方式执行指令状态,即每条指令执行完后, 微处理器暂停(进入陷阱),显示处理器内部各寄存微处理器暂停(进入陷阱),显示处理器内部各寄存 器的值。进入单步执行状态便于程序的调试。如果器的值。进入单步执行状态便于程序的调试。如果 TF=0,则连续执行指令。,则连续执行指令。 22 2、存储器分段管理结构存储器分段管理结构 存储器为什么要分段呢存储器为什么要分段呢? 16位微处理器,常规上管理位微处理器,常规上管理216 = 64KB的存的存 储空间储空间
24、 这样的存储空间满足不了应用的要求。这样的存储空间满足不了应用的要求。 用什么方法来扩大呢?用什么方法来扩大呢? 将正常管理的将正常管理的64KB存储空间定义为一个存储空间定义为一个段段 让微处理器能够管理多个这样的段让微处理器能够管理多个这样的段 通过通过分段存储分段存储结构,结构,8086/8088能够管理能够管理1MB 的存储空间的存储空间 23 存储器分段后如何来管理呢?存储器分段后如何来管理呢? 每个段的起始地址称为:每个段的起始地址称为:段基址段基址或或段地址段地址 每个段内的地址称为:每个段内的地址称为:段内偏移地址段内偏移地址 一个物理存储单元就可以通过一个物理存储单元就可以通
25、过“段地址:段地址: 偏移地址偏移地址”来唯一确定了来唯一确定了 如何管理如何管理“段地址段地址”和和“偏移地址偏移地址”呢?呢? 设置多个设置多个 段基址寄存器段基址寄存器 设置多个设置多个 偏移地址寄存器偏移地址寄存器 都有哪些都有哪些“段基址寄存器段基址寄存器”和和“偏移地址寄偏移地址寄 存器存器”呢?呢? 24 依照用途的不同,可分为如下段依照用途的不同,可分为如下段 代码段代码段 (Code Segment, CS) 数据段数据段 (Data Segment, DS) 堆栈段堆栈段 (Stack Segment, SS) 附加数据段附加数据段 (Extended Data Segme
26、nt, ES) 存储程序(指令)代码存储程序(指令)代码 。其段基址存放于。其段基址存放于CS寄寄 存器,段内偏移地址存存器,段内偏移地址存 放于放于IP寄存器寄存器 存储程序定义的变量。存储程序定义的变量。 段基址存放于段基址存放于DS寄存器寄存器 ,段内偏移地址存放于,段内偏移地址存放于 SI、DI或或BX寄存器寄存器 管理系统堆栈。段基管理系统堆栈。段基 址存放于址存放于SS寄存器,寄存器, 段内偏移地址存放于段内偏移地址存放于 SP或或BP寄存器寄存器 存储经过处理的中间存储经过处理的中间 变量。段基址存放于变量。段基址存放于 ES寄存器,段内偏移寄存器,段内偏移 地址存放于地址存放于
27、SI、DI或或 BX寄存器寄存器 存储器分段管理结构存储器分段管理结构 25 逻辑地址逻辑地址: :由段基址和相对于该段由段基址和相对于该段 的偏移地址共同描述的地址的偏移地址共同描述的地址 00000H - FFFFFH 例如:例如: 52000H 例如:例如: 5000H:2000H 段基址段基址偏移地址偏移地址 段基址寄存器管理段基址寄存器管理程序设计中使用的,方便程序设计程序设计中使用的,方便程序设计 物理地址物理地址:20根地址线所表示的地址根地址线所表示的地址 26 0 0 0 0段段 地地 址址 如何根据如何根据16位位的段地址和的段地址和16位位的段内偏移地的段内偏移地 址来计
28、算址来计算20位位的的物理地址物理地址呢?呢? 19 4 3 0 段地址左移四位段地址左移四位 偏偏 移移 地地 址址 15 14 13 2 1 0 20 位位 的的 物物 理理 地地 址址 27 物理地址的计算方法物理地址的计算方法 段地址左移四位,再加上偏移地址,就得段地址左移四位,再加上偏移地址,就得 到到20位的物理地址。位的物理地址。 5000H:2000H 逻辑地址逻辑地址 52000H 物理地址物理地址 计算计算寻址寻址内存内存 . 00000H FFFFFH 28 2.2 寻址方式寻址方式 所谓所谓寻址方式寻址方式(Addressing)指的)指的 是指令按照何种方式寻找或访问
29、到所需是指令按照何种方式寻找或访问到所需 的操作数或信息。的操作数或信息。 寻址方式分为寻址方式分为指令寻址指令寻址和和数据寻址数据寻址。 指令寻址是为了找到下一条指令;指令寻址是为了找到下一条指令; 数据寻址是为了找到本条指令所需的操作数。数据寻址是为了找到本条指令所需的操作数。 29 顺序顺序( PC ) + 1 PC 跳跃跳跃由转移指令指出由转移指令指出 LDA 1000 ADD 1001 DEC 1200 JMP 7 LDA 2000 SUB 2001 INC STA 2500 LDA 1100 . 0 1 2 3 4 5 6 7 8 9 PC +1 指令地址寻址方式指令地址寻址方式指
30、令地址指令地址指令指令 顺序寻址顺序寻址1 顺序寻址顺序寻址2 顺序寻址顺序寻址3 跳跃寻址跳跃寻址7 顺序寻址顺序寻址8 2.2 寻址方式寻址方式 1. 指令寻址指令寻址 30 2.2 寻址方式寻址方式 (1)立即数寻址)立即数寻址 (2)直接寻址)直接寻址 (3)间接寻址)间接寻址 (4)寄存器寻址)寄存器寻址 1. 指令寻址指令寻址 2. 数据寻址数据寻址 (5)寄存器间接寻址)寄存器间接寻址 (6)基址寻址)基址寻址 (7)变址寻址)变址寻址 (8)堆栈寻址)堆栈寻址 31 形式地址形式地址 指令字中的地址指令字中的地址 有效地址有效地址 操作数的真实地址操作数的真实地址 约定约定 指
31、令字长指令字长 = 存储字长存储字长 = 机器字长机器字长 1. 立即寻址立即寻址 指令执行阶段不访存指令执行阶段不访存 A 的位数限制了立即数的范围的位数限制了立即数的范围 形式地址形式地址 A操作码操作码寻址特征寻址特征 OP # A 立即寻址特征立即寻址特征 立即数立即数 可正可负可正可负 补码补码 形式地址形式地址 A 就是操作数就是操作数 立即数寻址立即数寻址 MOV AX,4567H ;将立即数;将立即数4567H送到送到AX MOV BL,78H ;将立即数;将立即数78H送到送到BL 32 33 2. 直接寻址直接寻址 EA = A 操作数操作数 主存主存 寻址特征寻址特征 L
32、DAA AACC 执行阶段访问一次存储器执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改操作数的地址不易修改(必须修改A) 有效地址由形式地址直接给出有效地址由形式地址直接给出 直接寻址直接寻址 MOV AX,DS:3000H 34 35 3. 间接寻址间接寻址 EA =(A) 有效地址由形式地址间接提供有效地址由形式地址间接提供 OPA 寻址特征寻址特征 AEA 主存主存 EA A1 EA A1 主存主存 EA 1 0 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围可扩大寻址范围 便于编制程序便于编制
33、程序 OPA 寻址特征寻址特征 A 一次间址一次间址多次间址多次间址 操作数操作数 操作数操作数 多次访存多次访存 36 4. 寄存器寻址寄存器寻址 EA = Ri 执行阶段不访存,只访问寄存器,执行速度快执行阶段不访存,只访问寄存器,执行速度快 OPRi 寻址特征寻址特征 寄存器个数有限,可缩短指令字长寄存器个数有限,可缩短指令字长 操作数操作数 R0 Ri Rn 寄存器寄存器 有效地址即为寄存器编号有效地址即为寄存器编号 MOV EAX,EDX INC CL MOV EAX,EDX INC CL 37 EA = ( Ri ) 5. 寄存器间接寻址寄存器间接寻址 有效地址在寄存器中,有效地址
34、在寄存器中, 操作数在存储器中,执行阶段访存操作数在存储器中,执行阶段访存 操作数操作数 主存主存 OPRi 寻址特征寻址特征 便于编制循环程序便于编制循环程序 地址地址 R0 Ri Rn 寄存器寄存器 有效地址在寄存器中有效地址在寄存器中 寄存器间接寻址 MOV AX,BP 38 39 6. 基址寻址基址寻址 (1) 采用专用寄存器作基址寄存器采用专用寄存器作基址寄存器 EA = ( BR ) + ABR 为基址寄存器为基址寄存器 OPA 操作数操作数 主存主存 寻址特征寻址特征 ALUBR 可扩大寻址范围可扩大寻址范围 便于程序搬家便于程序搬家 BR 内容由操作系统或管理程序确定内容由操作
35、系统或管理程序确定 在程序的执行过程中在程序的执行过程中 BR 内容不变,形式地址内容不变,形式地址 A 可变可变 40 (2) 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器 操作数操作数 主存主存 寻址特征寻址特征 ALU OPR0AR0 作基址寄存器作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器 通用寄存器通用寄存器 R0 Rn-1 R1 基址寄存器的内容由操作系统确定基址寄存器的内容由操作系统确定 在程序的执行过程中在程序的执行过程中 R0 内容不变,形式地址内容不变,形式地址 A 可变可变 41 MOV DX,AX+15 42 7.
36、变址寻址变址寻址 EA = ( IX ) +A OPA 操作数操作数 主存主存 寻址特征寻址特征 ALUIX 可扩大寻址范围可扩大寻址范围 便于处理数组问题便于处理数组问题 IX 的内容由用户给定的内容由用户给定 IX 为变址寄存器(专用)为变址寄存器(专用) 在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 A 不变不变 通用寄存器也可以作为变址寄存器通用寄存器也可以作为变址寄存器 43 MOV AX,DI+MASK 44 8. 堆栈寻址堆栈寻址 (1) 堆栈的特点堆栈的特点 堆栈堆栈 硬堆栈硬堆栈 软堆栈软堆栈 多个寄存器多个寄存器 指定的存储空间指定的存储
37、空间 先进后出先进后出(一个入出口)(一个入出口) 栈顶地址栈顶地址 由由 SP 指出指出 1 1FFFH +1 2000 H 进栈进栈 (SP) 1 SP出栈出栈 (SP)+ 1 SP 栈顶栈顶 栈底栈底 2000 H SP 2000 H 1FFF H SP 1FFFH 栈顶栈顶 栈底栈底 进栈进栈出栈出栈 1FFF H 栈顶栈顶 2000 H 栈顶栈顶 45 (2) 堆栈寻址举例堆栈寻址举例 15 200H ACC SP X 栈顶栈顶 200H 栈底栈底 主存主存 15 1FFH ACC SP 15 栈顶栈顶 200H 栈底栈底 主存主存 X 1FFH PUSH A 前前PUSH A 后后
38、 POP A 前前POP A 后后 Y 1FFH ACC SP X 栈顶栈顶 200H 栈底栈底 主存主存 151FFH 15 200H ACC SP栈顶栈顶 200H 栈底栈底 主存主存 X 15 46 例例: :假定假定80868086工作在实模式下,工作在实模式下,( (DS)=1000HDS)=1000H, (SS)=2000H(SS)=2000H,(SI)=007FH(SI)=007FH,(BX)=0040H(BX)=0040H, (BP)=0016H(BP)=0016H,变量变量TABLETABLE的偏移地址为的偏移地址为01000100H H。 请指出下列指令的源操作数字段是什么
39、寻址方请指出下列指令的源操作数字段是什么寻址方 式式? ?它的有效地址它的有效地址( (EA)EA)和物理地址和物理地址( (PA)PA)分别是多分别是多 少少? ? MOV AXMOV AX,1234H1234H MOV AX MOV AX,TABLETABLE MOV AX MOV AX,BX+100H BX+100H MOV AX MOV AX,TABLEBPSITABLEBPSI 2.3.1 指令的操作码与操作数指令的操作码与操作数 指令操作码指令操作码 (Operation Code) 指令操作数指令操作数 (Operand) 冯冯诺依曼型计算机机器指令的逻辑格式诺依曼型计算机机器指
40、令的逻辑格式 规定了指令所具有的功能。课程中规定了指令所具有的功能。课程中 主要用汇编语言助记符表示。主要用汇编语言助记符表示。 指令所要处理的数据。常以数据所指令所要处理的数据。常以数据所 在存储单元的地址形式给出。也称在存储单元的地址形式给出。也称 “指令地址码指令地址码”。 2. 3 处理器的指令系统处理器的指令系统 2.3.1 指令的操作码与操作数指令的操作码与操作数 一条指令中,操作数可能有一个、两个一条指令中,操作数可能有一个、两个 或三个,甚至更多。或三个,甚至更多。 当然,操作数的个数也可以是零,即指当然,操作数的个数也可以是零,即指 令没有操作数,如停机指令。令没有操作数,如
41、停机指令。 在这些操作数中,作为处理单元输入的在这些操作数中,作为处理单元输入的 叫叫源操作数源操作数(Source Operand),用于存放处理,用于存放处理 结果的叫结果的叫目的操作数目的操作数(Destination Operand)。 2. 3 处理器的指令系统处理器的指令系统 2.3.1 指令的操作码与操作数指令的操作码与操作数 “数据表示数据表示”:指令中所能表示的操作数:指令中所能表示的操作数 数据类型,即能够被计算机硬件直接辨识的数据类型,即能够被计算机硬件直接辨识的 操作数数据类型。操作数数据类型。 常用的常用的“数据表示数据表示”有有定点数定点数(含有符号(含有符号 数和
42、无符号数)、数和无符号数)、浮点数浮点数(含单精度浮点数(含单精度浮点数 和双精度浮点数)、和双精度浮点数)、字符字符、逻辑数逻辑数(又称布(又称布 尔型数据),可以由硬件直接提供。尔型数据),可以由硬件直接提供。 2. 3 处理器的指令系统处理器的指令系统 2. 3. 1 指令的操作码与操作数指令的操作码与操作数 “数据结构数据结构”:程序员在程序中所能够使用的数程序员在程序中所能够使用的数 据类型及其之间的结构关系。据类型及其之间的结构关系。 比如:数组、字符串、结构体、队列、链表、树、图、比如:数组、字符串、结构体、队列、链表、树、图、 堆栈等。堆栈等。 在硬件的基础上由软件实现在硬件的
43、基础上由软件实现 “数据表示数据表示”是数据结构的组成元素,是数据结是数据结构的组成元素,是数据结 构的子集。构的子集。 2. 3 处理器的指令系统处理器的指令系统 51 2. 3 处理器的指令系统处理器的指令系统 通用计算机系统的指令集可分为通用计算机系统的指令集可分为5类基本指令:类基本指令: (1)算术)算术/逻辑逻辑/移位指令(简称算逻指令)移位指令(简称算逻指令) (2)数据传送指令(简称数传指令)数据传送指令(简称数传指令) (3)控制转移指令)控制转移指令 (4)输入)输入/输出指令输出指令 (5)处理器控制及调试指令)处理器控制及调试指令 2.3.2 指令的基本功能指令的基本功
44、能 52 (1)算逻指令)算逻指令 定点加法指令定点加法指令ADD 定点减法指令定点减法指令SUB 定点乘法指令定点乘法指令MUL 定点除法指令定点除法指令DIV 加加1指令指令INC 减减1指令指令DEC 比较指令比较指令CMP 浮点加法指令浮点加法指令ADDF 浮点减法指令浮点减法指令SUBF 浮点乘法指令浮点乘法指令MULF 浮点除法指令浮点除法指令DIVF 十进制数算术运算指令十进制数算术运算指令 使用这些指令时,要注意它们对使用这些指令时,要注意它们对 处理器中状态标志位的影响处理器中状态标志位的影响 算术指令算术指令 2.3.2 指令的基本功能指令的基本功能 53 (1)算逻指令)
45、算逻指令 “与与”运算指令运算指令AND “或或”运算指令运算指令OR “非非”运算指令运算指令NOT “异或异或”运算指令运算指令XOR 位测试位测试 位清除位清除 位求反位求反 算术左移指令算术左移指令 算术右移指令算术右移指令 逻辑左移指令逻辑左移指令 逻辑右移指令逻辑右移指令 带进位循环左移指令带进位循环左移指令 不带进位循环左移指令不带进位循环左移指令 带进位循环右移指令带进位循环右移指令 不带进位循环右移指令不带进位循环右移指令 逻辑指令逻辑指令移位指令移位指令 2.3.2 指令的基本功能指令的基本功能 54 (2)数传指令)数传指令 根据数据的流向分:根据数据的流向分: 寄存器与
46、寄存器之间的数据传送寄存器与寄存器之间的数据传送 寄存器与主存储器单元之间的数据传送寄存器与主存储器单元之间的数据传送 寄存器与堆栈之间的数据传送寄存器与堆栈之间的数据传送 堆栈与主存储器单元之间的数据传送堆栈与主存储器单元之间的数据传送 内存单元与内存单元之间的数据传送内存单元与内存单元之间的数据传送 2.3.2 指令的基本功能指令的基本功能 55 (2)数传指令)数传指令 根据传输的功能分:根据传输的功能分: 一般传送指令一般传送指令 实现数据复制功能,即把源操作数的内容写入实现数据复制功能,即把源操作数的内容写入 目的操作数。其汇编语言助记符通常为目的操作数。其汇编语言助记符通常为MOV
47、。 在有些计算机上,将主存储器单元的内容写在有些计算机上,将主存储器单元的内容写 入寄存器的数据传送指令,其汇编语言助记符为入寄存器的数据传送指令,其汇编语言助记符为 LOAD;将寄存器内容写入主存储器单元的数据传;将寄存器内容写入主存储器单元的数据传 送指令,其汇编语言助记符为送指令,其汇编语言助记符为STORE。 2.3.2 指令的基本功能指令的基本功能 56 (2)数传指令)数传指令 根据传输的功能分:根据传输的功能分: 堆栈操作指令堆栈操作指令 1. 压入栈顶压入栈顶PUSH 2. 弹出栈顶弹出栈顶POP PUSH的源操作数和的源操作数和POP指令的目的操指令的目的操 作数,一般是寄存
48、器号,但也可能是主存作数,一般是寄存器号,但也可能是主存 储器单元地址储器单元地址 2.3.2 指令的基本功能指令的基本功能 57 (2)数传指令)数传指令 上述两类数据指令的数据流动是单方向的。上述两类数据指令的数据流动是单方向的。 要实现两个数据的交换,需要编写三条指令并额要实现两个数据的交换,需要编写三条指令并额 外占用一个存储单元。因此大多数计算机都提供外占用一个存储单元。因此大多数计算机都提供 “数据交换指令数据交换指令”来简化双向数据流动的实现,来简化双向数据流动的实现, 如如Intel 80 x86中的中的XCHG指令。指令。 这类指令的源操作数和目的操作数一般都是这类指令的源操
49、作数和目的操作数一般都是 寄存器,至多允许源操作数是主存储器单元。寄存器,至多允许源操作数是主存储器单元。 数据交换指令的执行时间一般较长。数据交换指令的执行时间一般较长。 2.3.2 指令的基本功能指令的基本功能 58 (3)控制转移指令)控制转移指令 跳转指令跳转指令JUMP 分支指令分支指令 子程序调用子程序调用CALL/返回指令返回指令RET 循环控制指令循环控制指令LOOP 中断系统指令中断系统指令 2.3.2 指令的基本功能指令的基本功能 将指令操作数的内容写入将指令操作数的内容写入 PC之中,强制改变指令之中,强制改变指令 执行的顺序。执行的顺序。 也称也称无条件转移指令无条件转
50、移指令 59 (3)控制转移指令)控制转移指令 跳转指令跳转指令JUMP 分支指令分支指令 根据特定条件(往往是上一条指令的执行结果),根据特定条件(往往是上一条指令的执行结果), 决定程序是顺序执行还是转移到一个新的位置执行,决定程序是顺序执行还是转移到一个新的位置执行, 即有条件地改变指令执行的顺序。也称即有条件地改变指令执行的顺序。也称条件转移指令条件转移指令。 条件转移指令可能依据的条件有:条件转移指令可能依据的条件有: 为零、为正为零、为正/负数、发生进位负数、发生进位/借位、为奇数借位、为奇数/偶数、发偶数、发 生溢出或以上条件的组合。生溢出或以上条件的组合。 2.3.2 指令的基
51、本功能指令的基本功能 60 (3)控制转移指令)控制转移指令 分支指令分支指令 条件转移指令又分为条件转移指令又分为“绝对转移绝对转移”和和“相对相对 转移转移”两种。两种。 对于对于“绝对转移绝对转移”,当条件满足时,计算机,当条件满足时,计算机 将把该指令中将把该指令中所含操作数的内容直接写入所含操作数的内容直接写入PC中。中。 对于对于“相对转移相对转移”,当条件满足时,计算机,当条件满足时,计算机 将把该指令中所含将把该指令中所含操作数的内容与操作数的内容与PC中的内容相中的内容相 加后加后,把结果写入把结果写入PC中。中。 2.3.2 指令的基本功能指令的基本功能 61 常见的条件转
52、移指令有:常见的条件转移指令有: 等于零转移等于零转移BEQ 不等于零转移不等于零转移BNEQ 小于转移小于转移BLS 大于转移大于转移BGT 小于等于转移小于等于转移/不大于转移不大于转移BLEQ 大于等于转移大于等于转移/不小于转移不小于转移BGEQ 不带符号小于转移不带符号小于转移BLSU 不带符号大于转移不带符号大于转移BGTU 不带符号小于等于转移不带符号小于等于转移/不带符号不大于转移不带符号不大于转移BLEQU 不带符号大于等于转移不带符号大于等于转移/不带符号不小于转移不带符号不小于转移BGEQU 没有进位转移没有进位转移BCC 有进位转移有进位转移BCS 没有溢出转移没有溢出
53、转移BVC 有溢出转移有溢出转移BVS 2.3.2 指令的基本功能指令的基本功能 62 (3)控制转移指令)控制转移指令 子程序调用子程序调用CALL/返回指令返回指令RET 在程序中,有一些具有特定功能的程序段会在程序中,有一些具有特定功能的程序段会 被反复使用。为了提高程序的可读性、可重用性被反复使用。为了提高程序的可读性、可重用性 和可维护性,人们将这样的程序段独立出来,将和可维护性,人们将这样的程序段独立出来,将 其定义成一个其定义成一个子程序子程序。 这样,在需要执行特定功能时,主程序中不再这样,在需要执行特定功能时,主程序中不再 需要编写一个程序段,而只需要编写一条调用子需要编写一
54、个程序段,而只需要编写一条调用子 程序的指令即可。程序的指令即可。 2.3.2 指令的基本功能指令的基本功能 63 (3)控制转移指令)控制转移指令 子程序调用子程序调用CALL/返回指令返回指令RET 调用子程序的指令格式调用子程序的指令格式: CALL Subprogram_Name。 功能是,首先把当前功能是,首先把当前程序的断点程序的断点(也称主调程序的(也称主调程序的 返回地址,即当前程序计数器返回地址,即当前程序计数器PC中的值)保存到系统堆中的值)保存到系统堆 栈中,然后由子程序名栈中,然后由子程序名Subprogram_Name求得子程序的求得子程序的 入口地址入口地址,最后把
55、子程序的入口地址写入,最后把子程序的入口地址写入PC,从而将程,从而将程 序控制转移至被调子程序。序控制转移至被调子程序。 返回指令:返回指令:RET指令的功能是把保存在堆栈中的程序断指令的功能是把保存在堆栈中的程序断 点弹回到点弹回到PC之中。之中。 64 子程序调用和返回子程序调用和返回 CALL SUB1 . . CALL SUB2 . CALL SUB2 RETURN RETURN . 主程序主程序 地址地址 2000 2100 2101 子程序子程序SUB1 2400 2500 2501 2560 2561 2700 主存空间分配主存空间分配程序执行流程程序执行流程 子程序子程序SU
56、B2 65 (1)算逻指令)算逻指令 (2)数传指令)数传指令 (3)控制转移指令)控制转移指令 (4)输入)输入/输出指令输出指令 包括包括: 启动输入启动输入/输出设备、停止输入输出设备、停止输入/输出输出 设备、测试输入设备、测试输入/输出设备及数据的输入或输出输出设备及数据的输入或输出 等指令。等指令。 例如,例如,Intel 80 x86中的输入指令为中的输入指令为IN指令指令, 输出指令为输出指令为OUT指令指令。 2.3.2 指令的基本功能指令的基本功能 66 (5)处理器控制及调试指令)处理器控制及调试指令 包括各种设置包括各种设置/清除标志位(如陷阱标志、中断清除标志位(如陷
57、阱标志、中断 允许标志、处理器工作状态标志位)指令、特允许标志、处理器工作状态标志位)指令、特 权指令、进程同步指令、调试指令、停机指令权指令、进程同步指令、调试指令、停机指令 (HALT)等。)等。 调试指令用于硬件或软件的调试调试指令用于硬件或软件的调试。硬件调试指。硬件调试指 令包括钥匙位置、开关状态的读取指令,重要令包括钥匙位置、开关状态的读取指令,重要 寄存器和主存储器单元内容的显示等。软件调寄存器和主存储器单元内容的显示等。软件调 试指令包括断点的设置及跟踪指令,自陷阱指试指令包括断点的设置及跟踪指令,自陷阱指 令等。令等。 2.3.2 指令的基本功能指令的基本功能 67 2.3.
58、3 指令的格式指令的格式 涉及指令的涉及指令的操作码长度操作码长度、指指 令令“地址制地址制”及采用的及采用的寻址方式寻址方式、 指令长度指令长度等三方面的问题。等三方面的问题。 68 指令操作码的长度有指令操作码的长度有定长定长和和不定长不定长两种选择。两种选择。 定长的操作码:可以简化指令译码器的设计与实现;定长的操作码:可以简化指令译码器的设计与实现; 不定长操作码(也称扩展操作码):可使常用指令拥不定长操作码(也称扩展操作码):可使常用指令拥 有较短的操作码而不常用指令拥有较长的操作码,从有较短的操作码而不常用指令拥有较长的操作码,从 而压缩程序所占的存储空间。而压缩程序所占的存储空间
59、。 在一条指令中出现几个在一条指令中出现几个操作数地址操作数地址,这是指令的,这是指令的“地址地址 制制”所要解决的问题。一般情况下,指令中地址的个数,所要解决的问题。一般情况下,指令中地址的个数, 可以取可以取4,3,2,1,0个。个。 2.3.3 指令的格式指令的格式 69 扩展操作码技术扩展操作码技术 操作码的位数随地址数的减少而增加操作码的位数随地址数的减少而增加 OP A1 A2 A3 0000 0001 1110 A1 A1 A1 A2 A2 A2 A3 A3 A3 A2 A2 A2 A3 A3 A3 1111 1111 1111 0000 0001 1110 1111 1111
60、1111 1111 1111 1111 1111 1111 1111 0000 0001 1111 1111 1111 1111 1111 1111 1111 A3 A3 A3 0000 0001 1110 4 位操作码位操作码 8 位操作码位操作码 12 位操作码位操作码 16 位操作码位操作码 15条三地址指令条三地址指令 15条二地址指令条二地址指令 15条一地址指令条一地址指令 16条零地址指令条零地址指令 70 地址制地址制 (1) 四地址四地址 (2) 三地址三地址 OP A1 A2 A3 A4 8 6 6 6 6 A1 第一操作数地址第一操作数地址 A2 第二操作数地址第二操作数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学排球教案集
- 企业采购管理规范与流程优化
- 浙江省科研机构聘用合同模板
- 石材加工机械招投标合同范例
- 企业与高校合作研发协议
- 古建筑修复监理工程师聘用条款
- 商业综合体招标密封条
- 大型活动搅拌车租赁协议
- 消防设施招投标奖励规定
- 机场物业招聘合同
- 高中信息技术 必修1 数据的分析(课件)
- 校本课程评价表
- 医药物流项目可行性研究报告
- 《植物生理学》课件第九章+植物生长生理
- 加强社区服务人才队伍建设实施方案
- 高中学生创新思维能力现状调查问卷
- GR-326-CORE规范讲解资料课件
- DBT29-295-2021 600MPa级高强钢筋混凝土结构技术标准
- 饮用水检测现状与质量控制ppt课件
- 《项目管理标准化手册》中交一航局
- 幼儿园后勤副园长述职报告范文(精选5篇)
评论
0/150
提交评论