|
|
|
|
|
|
|
|
|
|
|
|
Arithmetic: R-type |
|
|
|
|
|
000000 |
01000 |
01001 |
01010 |
00000 |
100000 |
|
|
b31-26 |
b25-21 |
b20-16 |
b15-11 |
b10-6 |
b5-0 |
|
|
opcode |
$rs |
$rt |
$rd |
shamt |
function |
|
|
add, sub |
|
|
|
|
|
add $rd, $rs, $rt # R[d] <- R[s] +
R[t] |
|
|
|
sub $rd, $rs, $rt # R[d] <- R[s] -
R[t] |
|
|
R-type: 3 registers |
|
|
|
|
add or subtract 2C values |
|
|
|
note that there is
nothing to indicate whether the registers used |
|
|
actually contain values
of the proper type |
|
|
|
unlike high-level
languages, there is no type; |
|
|
|
the bitstrings are simply
used as 2C |
|
|
opcode: 0 |
|
|
|
function |
add: 32 |
|
|
|
sub: 34 |
|
|
|
|
|
|
|
addu, subu |
|
|
|
|
|
Unsigned add or subtract |
|
|
Ignore overflow |
|
|
opcode: 0 |
|
|
|
function |
add: 33 |
|
|
|
sub: 35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|