操作码
- 指令的操作码OP表示该指令应进行什么性质的操作,如进行加、减、乘、除、取数、存数等等。
- 组成操作码字段的位数一般取决于计算机指令系统的规模。
定长操作码指令格式
操作码的长度固定
在定长操作码格式下若操作码长度为K位,最多只能有
2
k
2^k
2k条不同指令。
●优点:指令规整,译码简单
●缺点:信息的冗余极大,使程序的总长度增加
扩展操作码指令格式
即操作码的长度可变,且分散地放在指令字的不同字段中。通常是在指令字中用一一个固定长度的字段来表示基本操作码,而对于一部分不需要某 个地址码的指令,把它们的操作码扩充到该地址码字段。
- 可变长度
- 其中一种扩展方式
- 假设指令字长为16位:前4位为基本操作码字段OP,另有3个4位长的地址字段A1、A2和A3。
- 若4位基本操作码若全部用于三地址指令,则有16条。
- 若1111留作扩展操作码之用,(即识别到前四位为1111的时候,知道要往下继续判断它那哪些为操作码,哪些为地址码)此时三地址指令为15条;
- 若将1111 111留作扩展操作码之用,二地址指令为15条;
- 若将1111 1111 1111留作扩展操作码之用,一地址指 令为15条;
- 零地址指令为16条。
设计扩展操作码的注意事项: - 1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。
- 2)各指令的操作码一定不能重复。
- 3)通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。