MIPS Assembly/Pseudoinstructions
< MIPS AssemblyThe 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:
- blt
- bgt
- ble
- neg
- not
- bge
- li
- la
- move
- sge
- sgt
Branch 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
translates to
slt $1, $8, $9 bne $1, $0, label
Other Pseudoinstructions
Load Immediate (li)
The li pseudo instruction loads an immediate value into a register.
li $8, 0x3BF20
translates to
lui $8, 0x0003 ori $8, $8, 0xBF20
Move (move)
The move pseudo instruction moves the contents of one register into another register.
move $1, $2
translates to
add $1, $2, $0
Load Address (la)
la $a0,address
translates to
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.