В настоящее время я реализовал программу mips, которая считывает четыре символа Base64 в регистры $ s0, $ s1, $ s2, $ s3.Я понимаю, что для декодирования в базовые 64 символа требуется 6 битных символов и их повторная группировка в 8 битов.Я нашел этот Java-код в Интернете, который записывает процесс декодирования следующим образом:
for (i = numberQuadruple - 1; i > 0; i--) {
decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);}
, и я знаю, что оператор OR - это сложение двух символов, а операторы сдвига влево и вправо для сдвига битов на местено я не уверен, как именно это происходит и как реализовать это в сборке?