расщепление шестнадцатеричного значения в мипах - PullRequest
0 голосов
/ 23 октября 2018

Я работаю над проектом, в котором мне нужно взять значения, содержащиеся в шестнадцатеричном значении, и разделить его.У меня будет регистр, который содержит значение 0xAA00BBCC, и мне нужно разделить его на 3 различных целых числа, AA, BB и CC

Например:

, если значение: 0x88000232, Iнужно разделить его на 3 целых числа: A: 88, B: 02 и C: 32.

Как мне поступить?

1 Ответ

0 голосов
/ 23 октября 2018

С комбинацией SRL и ANDI, но иногда один из них не нужен.Например:

srl $t0, $a0, 8
andi $t0, $t0, 0xFF

Это смещает значение так, что BB из 0xAA00BBCC находится внизу (0x00AA00BB), а затем andi сбрасывает биты, которые не принадлежат этой части BB.

Когда счетчик сдвигов равен 24, andi не требуется.И, конечно, смещение на 0 позиций бесполезно, поэтому в этом случае требуется только andi.

...