The Background
I am a student just beginning to learn MIPS for one of my courses, and my professor is not allowing the usage of pseudo-instructions such as Load Address (la
) in our code. I am wondering what an example of the correct usage of standard instructions would look like to store the address of a declared variable into a register for use later in the code.
My Solution
I have currently been attempting to use this code, though I am getting a syntax error in the lui
instruction.
main:
.data
Array:
.space 80 #Declares that Array will hold 20 integers
.text
lui $s0, Array #loads most significant bits into $s0
ori $s0, $s0, Array #loads least significant bits into $s0
My Question
From what I understand, this should result in the address of Array
being placed into $s0
. However, as that does not seem to be the case, I'm wondering if anyone would be able to help me out on what I should be doing here.
la
. If you are not allowed to use it but you know the address where your array will be stored, then you can use those two instructions from your question with the correct values instead of using a label. – gusbro.data
will be stored by telling the assembler where you want it to be put. For example.data 0x3000
– gusbrola
with a label name and let the assembler do the math for you... – gusbro