(1) 定长的操作码的组织方案,当前常用的计算机,一般都在指令字的最高位部分分配固定的若干位(定长)用于表示操作码,例如8位,它有256个编码状态,故最多可以表示256条指令。这对于简化计算机硬件设计,提高指令译码和识别的速度很有利,当计算机字长为32位或更长时,这是常规正统用法,如IBM370机、VAX-11机,也包括我们的TEC-2教学计算机系统均如此。
(2) 变长的操作码的组织方案,当计算机的字长与指令长度为16位或8位时,单独为操作码划分出固定的多位后,留给表示操作数地址的位数就会严重不足。为此不得不对一个指令字的每一个二进制位的使用精打细算,使一些位(bit)在不同的指令中有不同的效用,在一些指令中,这些位用作操作码,而在另外一些指令中,这些位用作操作数的地址,则不同指令的操作码长度就会不同,即尽量为那些最常用(程序中使用频率高)、用于表示操作数地址的位数要求又较多的指令,少分配几位操作码(当然能表示的指令条数也就少);而对那些表示操作数地址的位数要求较少的指令多分配几位操作码;对那些无操作数的指令,整个指令字的所有位均用作操作码,力争在比较短的一个指令字中,既能表示出比较多的指令条数,又能尽量满足给出相应的操作数地址的要求。如PDP-11
计算机、我们的8位字长的教学计算机就都采用这种方案。其特点是每条指令的操作码肯定安排在指令字的最高位部分,不会与表示操作数地址的字段相互交叉。
(3) 操作码字段与操作数地址有所交叉的方案,这是与á有些类似的处理方案,相同的地方是,不同指令的操作码长度可以不同,不同之处是表示操作码所用到的一些二进制位不再集中在指令字的最高位部分,而是与表示操作数地址的一些字段有所交叉,操作码还被区分为主操作码和辅助操作码这样不同的两大部分,如NOVA(DJS-130)计算机就采用这种方案。这是一种比较特殊的用法,不很常用。
|
|