subu
Subtract unsigned (no overflow trap)
Subtracts $t3, or an immediate, from $t2 into $t1 and wraps on overflow instead of trapping.
Used in
- Maximum and unsigned distanceMIPS assembly
- Byte length of a stringMIPS assembly
Forms
subu , ,
Pseudo-instructions
The assembler turns these into one or more real instructions.
-
Set $t1 to ($t2 minus 32-bit immediate), no overflow
Operands
$t1- Any general-purpose register,
$0to$31, using its numeric or named spelling, such as$8or$t0($zerois$0;$rais$31). $t2- A general-purpose register. It may be the same register as
$t1. $t3- A general-purpose register. It may be the same register as
$t1. imm32- A 32-bit immediate,
-2147483648to4294967295. Pseudoinstruction expansion may overwrite$at, losing its previous value.
No exception is raised on overflow; the result wraps modulo 2^32. The most common subtract instruction in practice.
# Subtract 1 from zero without signed-overflow trapping. Inspect $t2: 0xFFFFFFFF.
li $t0, 0
subu $t2, $t0, 1