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