My textbook says that the MIPS assembler must break large constants into pieces and then reassemble them into a register. And that it uses the $at as a temporary register for
I've been looking for a concrete example of this, does anyone have one?
I've seen some websites say that the la pseudo-instruction converts into instructions using $at, but that doesn't seem to be needed. For example:
la $t0, 0xABCD1234
converts into
lui $t0, 0xABCD
ori $t0, $t0, 0x1234
$atto assemble 32-bit constants in general. You may need it to do branches when the nativebeq/bgez/bgtz/blez/bltzaren't enough and you need toslt*to build a different predicate.