| Terms |
Definitions |
|
sw register_source, RAM_destination
|
#store word in source register into RAM destination
|
|
li register_destination, value
|
#load immediate value into destination register
|
|
lw register_destination, RAM_source
|
#copy word (4 bytes) at source RAM location to destination register.
|
|
mflo $t1
|
# move quantity in special register Lo to $t1: $t1 = Lo # used to get at result of product or quotient
|
|
sb register_source, RAM_destination
|
#store byte (low-order) in source register into RAM destination
|
|
b target
|
# unconditional branch to program label target
|
|
addi $t2,$t3, 5
|
# $t2 = $t3 + 5; "add immediate" (no sub immediate)
|
|
bgt $t0,$t1,target
|
# branch to target if $t0 > $t1
|
|
j target
|
# unconditional jump to program label target
|
|
ble $t0,$t1,target
|
# branch to target if $t0
|
|
lw $t2, 4($t0)
|
* load word at RAM address ($t0+4) into register $t2 * "4" gives offset from address in register $t0
|
|
jr $ra
|
# "jump register" * jump to return address in $ra (stored by jal instruction)
|
|
sw $t2, -12($t0)
|
* store word in register $t2 into RAM at address ($t0 - 12) * negative offsets are fine
|
|
add $t0,$t1,$t2
|
# $t0 = $t1 + $t2; add as signed (2's complement) integers
|
|
jr $t3
|
# jump to address contained in $t3 ("jump register")
|
|
bge $t0,$t1,target
|
# branch to target if $t0 >= $t1
|
|
sub $t2,$t3,$t4
|
# $t2 = $t3 - $t4
|
|
blt $t0,$t1,target
|
# branch to target if $t0
|
|
la $t0, var1
|
copy RAM address of var1 (presumably a label defined in the program) into register $t0
|
|
div $t5,$t6
|
# Lo = $t5 / $t6 (integer quotient) # Hi = $t5 mod $t6 (remainder)
|
|
bne $t0,$t1,target
|
# branch to target if $t0 $t1
|
|
beq $t0,$t1,target
|
# branch to target if $t0 = $t1
|
|
lb register_destination, RAM_source
|
#copy byte at source RAM location to low-order byte of destination register,# and sign-e.g.tend to higher-order bytes
|
|
subu $t1,$t6,$t7
|
# $t1 = $t6 - $t7; subtract as unsigned integers
|
|
sw $t2, ($t0)
|
store word in register $t2 into RAM at address contained in $t0
|
|
mfhi $t0
|
# move quantity in special register Hi to $t0: $t0 = Hi
|
|
jal sub_label
|
# "jump and link" * copy program counter (return address) to register $ra (return address register) * jump to program statement at sub_label
|
|
lw $t2, ($t0)
|
load word at RAM address contained in $t0 into $t2
|
|
mult $t3,$t4
|
# multiply 32-bit quantities in $t3 and $t4, and store 64-bit # result in special registers Lo and Hi: (Hi,Lo) = $t3 * $t4
|
|
addu $t1,$t6,$t7
|
# $t1 = $t6 + $t7; add as unsigned integers
|
|
move $t2,$t3
|
# $t2 = $t3
|