Mips инструкции mthi и mtlo в hex?

Я нахожусь в процессе написания утилиты для преобразования инструкции 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 ответа

Информация из "See MIPS Run", для всех 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 

Кодирование MIPS 32R2 MTHI rs является двоичным 000000 ссссс 000 0000 0000 0000 010001.

Так MTHI $t2 является двоичным 000000 01010 000 0000 0000 0000 010001

Другие вопросы по тегам