【发布时间】:2013-12-02 19:43:59
【问题描述】:
如何知道MIPS指令的操作码是Register、Imidiate还是Jump? 鉴于本书中的这张表,但是有什么方法可以定义操作码的格式吗?
【问题讨论】:
如何知道MIPS指令的操作码是Register、Imidiate还是Jump? 鉴于本书中的这张表,但是有什么方法可以定义操作码的格式吗?
【问题讨论】:
看看操作码位 - 最重要的 6 位。在 C 语言中,如果 n 是 32 位命令 dword,则操作码的表达式为 (n >> 26) & 0x3f。
如果操作码为0,则为注册命令。
如果是 2 (j)、3 (jal) 或 26 (trap),那就是跳跃。
否则立即。
MIPS 编码的备忘单,包括所有操作码的列表,可在here 或其他地方获得。
【讨论】:
opcode字段推导出来。所有已知的操作码都记录在案;一些对应于 I 操作符,一些对应于 R,一些对应于 J。