第四章 指令系统
总览
-
指令格式
-
指令的基本格式
-
定长操作码指令格式
-
不定长操作指令格式
-
-
指令的寻址方式
-
数据寻址和指令寻址
-
常见寻址方式
-
-
CISC和RISC的基本概念
-
指令格式
-
指令的基本格式
-
操作码 |
地址码 |
-
零地址指令
-
没有操作数的指令。如操作指令、停机指令、关中断指令
-
堆栈计算机中的零地址运算类指令。堆栈计算机中参与运算的两个操作数隐含的从栈顶和次栈弹出,送到运算器进行运算,运算的结构再隐含地压入堆栈中。
-
-
一地址指令
-
只有目的操作数的单操作数指令,OP(A1) à A1
-
隐含约定目的地址的双操作数指令,另一个操作数由累加器ACC提供,运算结果也在ACC中,(ACC) OP (A1) à ACC
-
-
二地址指令
-
(A1) OP (A2) à A2
-
二地址指令类型 |
操作数的物理位置 |
速度 |
M-M |
主存 |
最慢 |
R-R |
寄存器 |
最快 |
R-M |
寄存器-主存 |
介于两者之间 |
-
三地址指令
-
(A1) OP (A2) à A3
-
-
四地址指令
-
(A1) OP (A2) à A3, A4为下一条指令地址
-
-
指令字长与机器字长
-
指令字长指一条指令所占用存储空间的大小,一般为字节的整数倍;指令字长取决于操作码的长度、操作地址的长度以及操作数地址的个数。
-
机器字长是CPU一次能处理的数据长度,通常等于内部寄存器的位数。
-
-
定长操作码指令格式
在指令字的最高位部分分配固定的若干位表示操作码。对于具有n位操作码字段的指令系统,最多能够表示2^n条指令。
-
不定长操作码指令格式
-
不允许较短的操作码是较长操作码的前缀
-
各条指令的操作码一定不可以重复
-
用高位的剩余空间扩充低位的表示范围,以节省空间
-
-
指令的寻址方式
-
数据寻址和指令寻址
-
指令寻址:找到下一条将要执行指令的地址;一般来说有两种方式:顺序执行时,用(PC)+"1"来得到下一条指令的地址:跳转执行时,通过转移指令的寻址方式,计算出目标地址,送到PC中即可。目标转移地址的形成方式主要有3种:立即寻址、相对寻址和简介寻址。
-
数据寻址:找到当前正在执行指令的数据地址
-
-
操作码 |
寻址特征 |
形式地址(A) |
-
常见数据寻址方式
寻址方式 |
有效地址计算方式 |
用途和特点 |
立即寻址 |
通常用于给寄存器赋初值 |
|
直接寻址 |
EA=A |
|
隐含寻址 |
缩短指令字长 |
|
一次间接寻址 |
EA=(A) |
扩大寻址范围,易于完成子程序返回 |
寄存器寻址 |
EA=Ri |
指令字较短;指令执行速度较快 |
寄存器间接寻址 |
EA=(Ri) |
扩大寻址范围 |
基址寻址 |
EA=A+(BR) |
扩大操作数寻址范围;适用于多道程序设计,常用于为程序或数据分配存储空间 |
变址寻址 |
EA=A+(IX) |
主要用于处理数组问题 |
相对寻址 |
EA=A+(PC) |
用于转移指令和程序浮动 |
先间址再变址 |
EA=(A)+(IX) |
|
先变址再间址 |
EA=(A+(IX)) |
-
CISC和RISC的基本概念
-
RISC的主要特点
-
指令长度固定,指令格式种类少,寻址方式种类少
-
只有取/存数指令访问存储器,其余指令的操作都在寄存器内完成
-
CPU中有多个通用寄存器
-
采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。
-
控制器采用组合逻辑控制,不采用微程序控制
-
采用优化的编译程序
-
-
CISC的主要特点
-
指令系统复杂庞大,指令数目一般多大200-300条
-
指令长度不固定,指令格式种类多,寻址方式种类多
-
可以访存的指令不收限制
-
由于80%的程序使用其20%的指令,因此CISC各指令的使用频率差距太大。
-
各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
-
控制器大多数采用微程序控制。
-
难以用优化编译生成高效的目标代码程序。
-
-
RISC和CISC的比较
-
RISC比CISC更能提高计算机的运算速度,列入,由于RISC寄存器多,因此就可以减少访存次数,其次,由于指令数和寻址方式少,因此指令译码较快。
-
RISC比CISC更便于设计,可降低成本,提高可靠性。
-
RISC能有效支持高级语言程序。
-
-