第4}章>指令系统 冬冬冬 1.等长操作码 设指令格式中等长操作码的位数为n位,则该机器最多可 以设计2n条不同功能的指令。 反过来,若指令系统中包含有N条不同功能的指令,采 用等长操作码设计时,至少需要[lgN]位。等长操作码的 指令格式如图4.1所示,由于不同指令的地址码的个数不同, 指令的长度也是变化的
第 章 指 令 系 统 1. 设指令格式中等长操作码的位数为n位, 则该机器最多可 以设计2 n条不同功能的指令。 反过来, 若指令系统中包含有N条不同功能的指令, 采 用等长操作码设计时, 至少需要[lg N]位。 等长操作码的 指令格式如图4.1所示, 由于不同指令的地址码的个数不同, 指令的长度也是变化的
第章指令系统 冬冬冬 4位 6位 6位 二地址指令: OP Al A2 4位 6位 地址指令: OP A 4位 零地址指令: OP 图41等长操作码的指令格式
第 章 指 令 系 统 图4.1 等长操作码的指令格式
第章指令系统 冬冬冬 2.变长操作码 变长操作码具体有两种不同的编码,即 Huffman(哈夫曼) 编码和扩展操作码。实际上,扩展操作码是 Huffman编码与 等长操作码的折中编码方案。扩展操作码的指令格式如图42 所示 4位 6位 6位 二地址指令: OP 10位 6位 一地址指令: OP 16位 零地址指令: OP 图42扩展操作码的指令格式
第 章 指 令 系 统 2. 变长操作码具体有两种不同的编码, 即Huffman(哈夫曼) 编码和扩展操作码。 实际上, 扩展操作码是Huffman编码与 等长操作码的折中编码方案。 扩展操作码的指令格式如图4.2 所示。 图4.2 扩展操作码的指令格式
第章指令系统 冬冬冬 假设某机器的指令系统中所有指令的长度都固定为16位, 有二地址指令、一地址指令和零地址指令等三种指令格式 设二地址指令的操作码字段为4位,每一地址码字段均为6位, 地址指令和零地址指令的操作码采用扩展操作码的方法构成, 如图42所示。二地址指令的操作码为4位,如果全部用来表 示二地址指令,则可以表示24=16种。如果机器只需要15条二 地址指令,则可以取其中的0000~1110共15种组合来表示二 地址指令的操作码。将剩下的一种编码1111一地址指令 操作码的扩展标志,扩展到二地址指令的A1字段,就形成了 地址指令
第 章 指 令 系 统 假设某机器的指令系统中所有指令的长度都固定为16位, 有二地址指令、 一地址指令和零地址指令等三种指令格式。 设二地址指令的操作码字段为4位, 每一地址码字段均为6位, 一地址指令和零地址指令的操作码采用扩展操作码的方法构成, 如图4.2所示。 二地址指令的操作码为4位, 如果全部用来表 示二地址指令, 则可以表示2 4=16种。 如果机器只需要15条二 地址指令, 则可以取其中的0000~1110共15种组合来表示二 地址指令的操作码。 将剩下的一种编码1111作为一地址指令 操作码的扩展标志, 扩展到二地址指令的A1字段,就形成了 一地址指令
第4}章>指令系统 冬冬冬 由于A字段的位数是6位,因此用一个扩展标志11可 以扩展出26=64种一地址指令的操作码。如果机器只需要62条 地址指令,即取1111000~1110作为一地址指令 的操作码,则余下的两种编码111111111 以作为零地址指令操作码的扩展标志,扩展到一地址指令的A 字段,就形成了零地址指令。由于A字段的位数是6位,因此 用两个标志位最多可以扩展出2×26=128种零地址指令的操作 码。上面描述的操作码扩展情况如表4.1所示
第 章 指 令 系 统 由于A1字段的位数是6位, 因此用一个扩展标志1111就可 以扩展出2 6=64种一地址指令的操作码。 如果机器只需要62条 一地址指令, 即取1111000000~1111111101作为一地址指令 的操作码, 则余下的两种编码1111111110、 1111111111都可 以作为零地址指令操作码的扩展标志, 扩展到一地址指令的A 字段, 就形成了零地址指令。 由于A字段的位数是6位, 因此 用两个标志位最多可以扩展出2×2 6=128种零地址指令的操作 码。 上面描述的操作码扩展情况如表4.1所示