【计算机组成原理】指令系统(二)—— 扩展操作码
- 定长指令字结构:指令系统中所有指令的长度都相等;
- 变长指令字结构:指令系统中各种指令的长度不等;
- 定长操作码:指令系统中所有指令的操作码长度都相同;
- 可变长操作码:指令系统中各指令的操作码长度可变。
定长指令字结构 + 可变长操作码 → 扩展操作码指令格式
扩展操作码指令格式:不同地址数的指令使用不同长度的操作码。
- 举例
某机器字长为 16 位, 单字长指令结构,每个地址码 6 位,试用操作码拓展码技术设计 14
条二地址指令,80条但地址指令,60条零地址指令。
解析:对于操作码扩展类题目,操作码应该由短到长进行编码,即从多地址码指令向零地址指令逐步编写。
设计扩展操作码指令时的注意事项:
(1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。
(2)各指令的操作码一定不能重复。
通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。
设地址长度为 n,上一层留出 m种状态,下一层可扩展出 m × 2 n m×2^n m×2n 种状态
- 操作码分类:
(1)定长操作码: 在指令字的最高位部分分配固定的若干位(定长)表示操作码。
- 一般n位操作码字段的指令系统最大能够表示 2 n 2^n 2n条指令。
- 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;
- 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。
(2)扩展操作码(不定长操作码) :全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。
- 最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。
- 优: 在指令字长有限的前提下仍保持比较丰富的指令种类;
- 缺 :增加了指令译码和分析的难度,使控制器的设计复杂化。