计算机组成原理第四章指令系统[一]
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习指令系统的目的:对于了解计算机的工作过 程和控制方法有重要的作用。 主要学习内容:
4.1 指令格式 4.2 指令和数据的寻址方式 4.3 CISC和RISC
4.1 指令格式
1.指令格式
操作码 地址码
• 操作码(Operation code):指明该指令执行 什么性质的操作,不同的指令有不同的操作 码.其位数反映了机器操作种类,即机器允许 的指令条数.
• 一条指令中指明几个地址(与指令所涉及的操作数个 数有关);
• 如何给出地址(显地址--地址信息明显地给出;隐地址-地址信息依据某种事先约定, 用隐含的式给出).
• 地址码应选多长(与存储单元容量、编址单位大小和 寻址方式有关).
以双操作数运算类指令(如加法指令)为例: (1) 四地址双操作数指令
操作码 A1 A2 A3 下条指令地址(A4)
指令功能: (A1) OP (A2) A3 A4提供下一条指令的地址
(2) 三地址双操作数指令
操作码 A1 A2 A3
指令功能: (A1) OP (A2) A3 下一条指令的地址由PC提供 (3) 二地址双操作数指令
操作码 A1 A2
指令功能: (A1) OP (A2) A1 下一条指令的地址由PC提供
具体做法:在指令中有一个固定长度的字段表示基本操 作码,而对于一部分不需要某个地址码的指令,把它们的 操作码扩充到该地址字段,也称扩展操作码技术.
例:设某机器的指令字长为16位,包括基本操作码4位 和三个地址字段,每个地址字段长4位,其格式为:
15 12 11 8 7 4 3Fra Baidu bibliotek
0
OP A1
第四章 指令系统
指令(instruction): 计算机硬件能识别并直接 执行的操作命令(如加、减、传送、转移等), 即机器指令(Machine Instruction)。
指令系统(指令集:instruction sets):一台计算机 能执行的全部指令的集合。
指令系统反映了计算机具有的基本功能,是计 算机系统硬件、软件的主要分界面。 指令系统既是计算机硬件设计的主要依据,又是 计算机软件设计的基础,所以,一台计算机指令系 统的优劣直接影响着计算机系统的性能.
(2) 指令的长度
• 单字长指令:指令字长等于机器字长. • 双字长指令: 指令字长等于两个机器字长的指令.
例如:IBM 370的指令长度有16位(半字)、32位(单字) 及 48位(一个半字).
• 等长指令字结构:一个指令系统中,各种指令字 长度是相等的.RISC采用等长指令字结构.
优点:指令字结构简单,长度固定,指令译码时间 短,有利于硬件控制系统的设计,执行速度快; 缺点:指令平均长度长、容易出现冗余码点,指令 不易扩展等.
• 变长指令字结构:一个指令系统中,各种指令字 长度随功能而异.CISC采用变长指令字结构. 优点:使用灵活,充分利用指令的每一位,指令平均 长度短,码点冗余少,易于扩展; 缺点:指令格式不规整,取指令时需要多次访存,从 而导致不同指令的执行时间不同,硬件控制系统 复杂.
2.地址码结构
设计指令的地址码格式时需解决:
3.操作码:指明指令要完成的操作功能及其特性. 指令系统中的每一条指令都有一个唯一确定的操作 码,不同指令有不同的操作码.
若指令系统中有m种操作,即指令系统中可包含 m条指令,则操作码的位数n应满足:
M<=2n, 故 n>=㏒2m
(1) 定长操作码:所有指令的操作码长度一致,均为n位 操作码,集中位于指令字的固定字段中,最多能够表示 2n条指令.
特点:简单规整,由于定长的操作码在指令字中所占 的位数、位置固定,所以指令译码简单,有利于简化硬 件设计.
(2) 变长操作码:操作码长度可变,不同指令的操作码 长度不完全相同,操作码位数不固定,分散地位于指令 字的不同位置上.
特点:可以在指令字长有限的前提下仍保持较丰 富的指令种类.但由于操作码的位数不固定且位置分散, 故增加了指令译码与分析的难度,使硬件设计复杂化.
(3) 一地址指令程序
LOAD E; (E) AC ADD F; (AC)+(F) AC STORE X; (AC) X LOAD A; (A) AC MUL B; (AC) ×(B) AC ADD C; (AC)+(C) AC SUB D; (AC)-(D) AC DIV X;(AC)/(X) AC STORE X; (AC) X
(4) 一地址双操作数指令
操作码
A1
指令功能: (A1) OP (AC) AC AC为累加寄存器 下一条指令的地址由PC提供
(5) 零地址双操作数指令 操作码
指令功能:堆栈栈顶和次栈顶中的内容从堆栈 弹出后,进行某种运算,结果压入堆栈.
• 地址个数对程序长度和指令长度的影响
同一个问题,用地址数越多的指令编写的程序越短, 但指令长度越长. 例:分别用三地址、二地址、一地址指令编制计算 x=(a×b+c-d)/(e+f)的程序. 解:假设a、b、c…为操作数,A、B、C…为操作数地址.
(1)三地址指令程序
MUL A,B,X; (A) ×(B) X ADD X,C,X; (X)+(C) X SUB X,D,X; (X)-(D) X ADD E,F,Y; (E)+(F) Y DIV X,Y,X; (X)/(Y) X
(2)二地址指令程序 MOV X,A; (A) X MUL X,B; (X) ×(B) X ADD X,C; (X)+(C) X SUB X,D; (X)-(D) X MOV Y,E; (E) Y ADD Y,F; (F)+(Y) Y DIV X,Y; (X)/(Y) X
• 地址码:指明操作数所在的地址(Source operand reference),结果存放的地址(Result operand reference)以及下一条指令的地址 (Next instruction reference).
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的位 数,通常与主存单元的位数一致.