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