Alright, I got this assembler class, and we're doing mips, and such.
Anyway, I got this problem, see.

I have to read in a number in binary (sign magnitude), convert it to decimal, then convert that to a string of ascii characters, and then print them out, with a - sign if necessary.

The only thing I have problems with is printing them out.
Say I've made a character, on the stack.
Say it's
0x33000000
ASCII, 3<null><null><null>
So it would print 3, then stop (when it hits null)

However!
I have to load an ADDRESS into $a0 to print a string.

How do I load the address of a register??

Say I have my string in $t6. I want to print that string, which is basically one ascii character, from 0-9 (maybe -), then three null characters.
How do I load the ADDRESS and not the VALUE of $t6 into $a0.
(I can't use labels)

I bet it's simple... I hope...

Recommended Answers

All 2 Replies

I don't know MIPS, but you need to move the register value into a local variable.

in x86 assembler it would be something like:

mov esp[-3], eax

where esp is the stack pointer, and -3 was where you wanted the local variable.

Yeah, I got it last night.
Apparantly I had to so a
la $a0, 0$(sp)

I thought I did that before.
I tried SO many things, loading words, bytes, etc,
addresses of all sorts of offsets, you name it.

Oh well, thanks anyway.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.