0%
4.指令系统
(★★★)指令格式
基本格式
零地址指令
- 举例
- 空操作指令、停机指令等不需要操作数的指令
- 操作数隐含的指令(操作数及运算结果保存在堆栈中)
一地址指令
- 指令含义:\(OP(A_1)\rightarrow
A_1\)
- 举例
- 单目操作指令(即只需要一个操作数的指令,且运算结果保存在原位置,如自增1、求反等)
- 双目操作指令,但一个操作数隐含(比如存放在
ACC 中)
二地址指令
- 指令含义: \((A_1)OP(A_2)\rightarrow
A_1\)
三地址指令
操作码 |
操作数地址 1 |
操作数地址 2 |
运算结果存放地址 |
- 指令含义: \((A_1)OP(A_2)\rightarrow
(A_3)\)
四地址指令
操作码 |
操作数地址 1 |
操作数地址 2 |
运算结果存放地址 |
下址(下一条指令的地址) |
- 指令含义: \((A_1)OP(A_2)\rightarrow
(A_3)\) , \(A_4=下一条指令地址\)
定长操作码和扩展操作码的优缺点对比
- 定长操作码:指令操作码的位数固定
- 扩展操作码:指令操作码的位数不固定
采用扩展操作码方式指令数目的计算及设计
- 思路
- 从含操作数地址最多的开始计算:由操作数地址位数和指令类型(几地址指令),确定操作码的位数,这个位数所能表示的最大数字
- 1 ,即为该类型指令的最大指令数
- 以此类推
- P.S.
若根据题意,若高位地址设计指令未用完,可用于设计下一级指令(指令条数相乘即可)
(★★)指令的寻址方式
有效地址的概念
(详见教材)
数据寻址和指令寻址
数据寻址
指令寻址
- 顺序寻址:PC 自增实现
- 跳跃寻址:由转移类指令实现
常见寻址方式及寻址过程
隐含寻址 |
程序指定 |
0 |
|
立即寻址 |
A 即是操作数 |
0 |
|
直接寻址 |
EA = A |
1 |
|
一次间接间接寻址 |
EA = ( A ) |
2 |
|
寄存器寻址 |
EA = Ri |
0 |
|
寄存器间接一次寻址 |
EA = ( Ri ) |
1 |
|
相对寻址 |
EA = ( PC ) + A |
1 |
|
基址寻址 |
EA = ( BR ) + A |
1 |
BR 不变,A 变,面向操作系统 |
变址寻址 |
EA = ( IX ) + A |
1 |
A 不变,IX 变,面向用户,典型应用:数组 |
(★)CISC和RISC
CISC和RISC的基本概念及区别
(详见教材)
MIPS 32的典型指令
(详见教材)
解题技巧及重要结论
参考资料
- 计算机组成与系统结构.袁春风等
- 2020年计算机组成原理考研复习指导.王道论坛