The MIPS instruction set is very small, so to do more complicated tasks we need to employ assembler macros called pseudoinstructions.
List of Pseudoinstructions
The following is a list of the standard MIPS instructions that are implemented as pseudoinstructions:
Branch if less than (blt)
The blt instruction compares 2 registers, treating them as signed integers, and takes a branch if one register is less than another.
blt $8, $9, label
slt $1, $8, $9 bne $1, $0, label
Load Immediate (li)
The li pseudo instruction loads an immediate value into a register.
li $8, 0x3BF20
lui $at, 0x0003 ori $8, $at, 0xBF20
Absolute Value (abs)
The absolute value pseudo instruction loads the absolute value contained in one register into another register.
abs $1, $2
addu $1, $2, $0 bgez $2, 8 (offset=8 → skip 'sub' instruction) sub $1, $2, $0
The move pseudo instruction moves the contents of one register into another register.
move $1, $2
add $1, $2, $0
Load Address (la)
lui $at, 4097 (0x1001 → upper 16 bits of $at). ori $a0,$at,disp
where the immediate (“disp”) is the number of bytes between the first data location (always 0x 1001 0000) and the address of the first byte in the string.