为了便于实现分级译码,一般采用等长扩展法,例如,操作码按4位、8位、12位,每次加长4位的方法扩展,记作4-8-12扩展法,还有3-6-9扩展法等。当然,也可以根据具体需要,采用每次扩展的位数不等的不等长扩展法。
  对于等长扩展法,因为采用不同的扩展标志还可以有多种不同的扩展方法。例如,对于4-8-12扩展法,有采用保留一个码点标志的15/15/15扩展法,采用每次保留多个标志位的8/64/512扩展法等。当然,也可以根据不同的需要,在操作码长度扩展过程中,每次采用不同的扩展标志。
  对于4-8-12等长扩展法中的15/15/15扩展法和8/64/512扩展法,操作码的具体编码方法如图3.2所示。
  在对操作码进行编码时,具体采用哪种扩展编码方法,要根据具体计算机系统中各种指令出现的概论分布情况来决定。
  例如,某台计算机系统中,有15种指令出现的概论值比较大,另15种次之,其余指令出现的概论值很小,这时可采用15/15/15扩展编码法。
  如果有8种指令出现的概论值比较大,另64种指令出现的概论值次之,可采用8/64/512扩展编码法。
  总之,无论采用哪一种扩展编码方法,衡量的标准是要看这种编码方法的操作码平均长度是否最短,或信息的冗余量是否最小。
  另外,也可以采用不等长扩展编码方法,例如,采用4-6-10扩展编码法。根据具体计算机系统中各种指令出现的概论分布情况,可以有很多种不等长编码方法,举例如表3.4所示。
(a)等长15/15/15扩展法 (b)等长8/64/512扩展法
操作码编码 说 明
  0000
  0001
  ……
  1110
4位长度的操
作码共15种
1111 0000
1111 0001
……
1111 1110
8位长度的操
作码共15种
1111 1111 0000
1111 1111 0001
……
1111 1111 1110
12位长度的
操作码共15种
操作码编码 说 明
  0000
  0001
  ……
  0111
4位长度的操
作码共8种
1000 0000
1000 0001
……
1111 0111
8位长度的操
作码共64种
1000 1000 0000
1000 1000 0001
……
1111 1111 0111
12位长度的
操作码共512种
图3.2 操作码的的等长扩展编码法
表3.4 4-6-10不等长扩展编码法举例
编码方法 各种不同长度操作码的指令种类 总的指令种类
4位操作码 6位操作码 10位操作码
15/3/16 15 3 16 34
8/31/16 8 31 16 55
8/30/32 8 30 32 70
8/16/256 8 16 256 280
4/32/256 4 32 256 292