Как установить адрес памяти для инструкции в MIPS? - PullRequest
0 голосов
/ 19 февраля 2019

Обычно симулятор SPIM сам назначает адрес инструкциям в программе.Есть ли какой-нибудь способ вручную выбрать место для хранения конкретной инструкции?

1 Ответ

0 голосов
/ 19 февраля 2019

Конечно, директива .text имеет необязательный аргумент, в котором вы можете указать адрес:

.text
.globl main
# This code ends up at the default address for the .text section
main:

li $a0,1
jal foo
li $v0,1
syscall

li $v0,10
syscall

.text 0x430000
# This code ends up at address 0x430000
foo:
li $a0,2
jr $ra

Конечно, вы не можете просто выбрать адрес случайным образом.Он должен быть действительным для целевой среды (в моем примере это QtSpim).


Другая возможность - собрать все в расположение по умолчанию, а затем скопировать части кода в ОЗУ во время выполнения и выполнить его изесть.

...