Mips指令mthi和mtlo成十六进制?

时间:2014-11-13 21:30:04

标签: mips

我正在编写一个实用程序,将mips指令转换为十六进制(4字节)格式。使用ADD等指令一切正常。但是对于mthi和mtlo,我得到的输出与预期相比有所不同。我不确定mips的确切版本是什么。

这是我得到的:

mthi    $t2  = 01400011
mthi    $s0  = 02000011
mtlo    $t8  = 03000013
mtlo    $a3  = 00e00013

这是我得到的:

mthi $ t2

1010 00000 00000 00000 010001

有谁知道内部位是如何计算的以及mips的版本是什么?感谢。

2 个答案:

答案 0 :(得分:1)

来自“参见MIPS运行”的信息,对于它涵盖的所有MIPS ISA(通过MIPS IV),MIPS32指令没有区别。

这是mfhi,mtlo,mfhi,mtlo的格式(包括mfhi / mflo用于比较和完整性)

bit:     31-26  25-21  20-16   15-11  10-6  5-0 
mfhi rd    0      0      0      rd     0     16 
mthi rs    0      rs     0      0      0     17 
mflo rd    0      0      0      rd     0     18 
mtlo rs    0      rs     0      0      0     19 

所以mthi $ t2(注册#10)

mthi $t2   000000 01010 00000 00000 00000  01001 

答案 1 :(得分:0)

MTHI rs的MIPS 32R2编码为二进制000000 sssss 000 0000 0000 0000 010001.

所以MTHI $t2是二进制000000 01010 000 0000 0000 0000 010001