Могу ли я выполнить номер, хранящийся в реестре, как инструкцию в MIPS? - PullRequest
2 голосов
/ 24 сентября 2011

Если я возьму инструкцию и разобью ее на двоичное представление ее кода операции, rs, rt и т. Д., Могу ли я затем поместить это двоичное число в регистр и получить MIPS для обработки его как инструкции?

Например:

Инструкция: add $t0, $s0, $t0

Разбивается на:

000000 10010 01000 01000 00000 100000

Что соответствует целому числу:18696

Могу ли я сохранить это целое число в регистре, а затем заставить MIPS рассматривать его как инструкцию?

Я спрашиваю об этом, имея в виду идею самоизменения кода.

1 Ответ

4 голосов
/ 26 сентября 2011

Правильный ответ - нет . Как указано в комментарии пользователя, который прочитал вопрос более внимательно, чем я в первый раз, значение должно быть сначала записано в память, затем вы загружаете адресное значение памяти, в которой хранится это значение, и затем переходите к этому.

Возможно, вы захотите узнать больше о том, как JIT-компиляторы работают, так как они используют много модификаций кода (для ясности, они не модифицируют генератор кода, но они делают много живых исправлений сгенерированный код во время выполнения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...