Могу ли я использовать $ PC в MIPS - PullRequest
0 голосов
/ 03 ноября 2011

Насколько я знаю, счетчик программ $ PC скрыт от пользователей. Это не один из 32 регистров.

Я хочу сделать следующее вместо использования jal

$ra <= PC + 4
j my_function
# instead of jal my_function

Возможно ли это сделать? Я знаю, что JAIL - это макрос.

Как я могу перейти к функции без использования JAL и возможности вернуться к следующей инструкции вызывающего абонента? Спасибо.

Спасибо!


Один из поддерживаемых методов «обнаружения» ПК в коде - использование JAL. со смещением нуля (для перехода / ссылки на следующую инструкцию), затем прочитайте ПК из R31.

Попытка:

..statements before jump...
jal $0
addi $t3, $ra, 4
..statements when function returns..

Я попадаю в бесконечный цикл.

1 Ответ

2 голосов
/ 03 ноября 2011

Выполнение JAL для обнаружения ПК совершенно бесполезно, поскольку вы можете использовать этот JAL для перехода ... Один из способов сделать это - использовать псевдоинструкцию LA, что-то вроде:

la $ra, current
addiu $ra, $ra, 8
current:
j example
nop
return:
j return
nop

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