扩展操作码
指令由操作码和若干个地址码组成。
PS:先回顾一下指令字结构与操作码的概念:
- 定长指令字结构:指令系统中所有指令的长度都相等
- 变长指令字结构:指令系统中各种指令的长度不等
- 定长操作码:指令系统中所有指令的操作码长度都相同
- 可变长操作码:指令系统中各指令的操作码长度可变
定长指令字结构+可变长操作码 → 扩展操作码指令格式(即不同地址数的指令使用不同长度的操作码)
扩展操作码举例
这只是一种设计方法:
设计扩展操作码需注意:
- 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。(对比哈夫曼树“前缀编码”)
- 各指令的操作码一定不能重复。
通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。
设计扩展操作码例题:
设指令字长固定为16位,试设计一套指令系统满足:
a) 有15条三地址指令
b) 有12条二地址指令
c) 有62条一地址指令
d) 有32条