ビット

#QtSpimより。

PC       = 00400020
EPC      = 00000000
Cause    = 00000000
BadVAddr = 00000000
Status   = 3000ff10

HI       = 00000000
LO       = 00000000

R0  [r0] = 00000000  #000000
R1  [at] = 00000000  #000001
R2  [v0] = 0000000a  #000010     (2本の値レジスタ。結果の値を返すために必要。)
R3  [v1] = 00000000  #000011
R4  [a0] = 00000001  #000100     (a[0-4]は手続き呼び出しでパラメータを渡すために必要。)
R5  [a1] = 7ffff758  #000101
R6  [a2] = 7ffff760  #000110
R7  [a3] = 00000000  #000111
R8  [t0] = 10010000  #001000
R9  [t1] = 00000003  #001001
R10 [t2] = 00000000  #001010
R11 [t3] = 00000000  #001011
R12 [t4] = 00000000  #001100
R13 [t5] = 00000000  #001101
R14 [t6] = 00000000  #001110
R15 [t7] = 00000000  #001111
R16 [s0] = 00000001  #010000
R17 [s1] = 00000002  #010001
R18 [s2] = 00000003  #010010
R19 [s3] = 00000006  #010011
R20 [s4] = 00000000  #010100
R21 [s5] = 00000000  #010101
R22 [s6] = 00000000  ..
R23 [s7] = 00000000
R24 [t8] = 00000000
R25 [t9] = 00000000
R26 [k0] = 00000000
R27 [k1] = 00000000
R28 [gp] = 10008000
R29 [sp] = 7ffff754              (スタックポインタ)高いアドレスから低いアドレスへ。
R30 [s8] = 00000000
R31 [ra] = 00400018              (return address:手続きから制御を元に戻すために必要。)
mipsの命令は32びっと。|6|5|5|5|5|6|
>R format
|op    |rs   |rt   |td   |shamt| funct| #add, sub, sll, srl, and, or, nor

>I format
|op    |rs   |rt   | constant or addr | #addi, lw, sw

add $t0, $s1, $s2 なら、
|add   |$s1  | $s2 | $t0 | 0   |  add |
| 0    | 17  | 18  |  8  |  0  |  32  | #10進法で
実際はビットだから、2進法で
|000000|10001|10010|01000|00000|100000| #となる。

sll $t2, $s0, 4  # i << 4 # i * 2^4;
| 0    |  0  | 16  |  10 | 4   | 0    |
 

lw $t0, 400($t1) なら、
| lw:35|9($t1|8($t0|  400           |
|101011|01001|01000|0000000110010000|