Я пишу самомодифицирующийся код и хочу вызвать функцию C (назовем ее foo
) из MIPS.
Я загрузил добавление памяти foo
, &foo
в $t1
. Сейчас я jr/jalr $t1
.
Будет ли C устанавливать $ra
в качестве моего текущего ПК(+8) (до прыжка), что позволит мне использовать JR
, или вместо этого мне придется использовать JALR
(т.е. позаботиться об этом, потому что C этого не сделает)?
Я не могу проверить это прямо сейчас, так как отлаживаю свои макросы (для мнемоники MIPS). Я, должно быть, что-то напутал, потому что я продолжаю получать недопустимые ошибки в инструкциях.