F1000204 FFE427BD addiu sp,sp,$ffe4 spレジスタの数値へffe4を加算しspレジスタへ格納 符号拡張されているのでffe4は負の整数です F1000208 0014AFA8 sw t0,$0014(sp) spレジスタの数値+0014のアドレスへt0レジスタの数値をストア この後t0レジスタを書き変えるので その数値を別の場所に退避させています F100020C 0018AFA9 sw t1,$0018(sp) spレジスタの数値+0018のアドレスへt1レジスタの数値をストア これも同じく数値の退避です F1000210 A05F3C1A lui k0,$a05f k0レジスタの上位4ケタにA05Fを代入 F1000214 AE00375A ori k0,k0,$ae00 k0レジスタにAE00を加算しk0レジスタへ格納 ここでA05FAE00という数値の完成 F1000218 A07C3C08 lui t0,$a07c t0レジスタの上位4ケタにA07Cを代入 F100021C 5C003508 ori t0,t0,$5c00 t0レジスタに5C00を加算しt0レジスタへ格納 ここでA07C5C00という数値の完成 F1000220 0040241B addiu k1,zero,$0040 k1レジスタに0040という数値を代入 これは繰り返し回数の設定です F1000224 00008D09 lw t1,$0000(t0) t0レジスタの数値+0000のアドレスから 8ケタの数値をt1レジスタへロード F1000228 FFFF237B addi k1,k1,$ffff k1レジスタにFFFFを加算しk1レジスタへ格納 符号拡張されるのでマイナス1をして格納しています F100022C 0000AF49 sw t1,$0000(k0) 00000224の命令でロードした数値を k0レジスタの数値+0000のアドレスへストア(書き込み) F1000230 00042108 addi t0,t0,$0004 t0レジスタの数値に0004を加算しt0レジスタへ格納 F1000234 FFFB1F60 bgtz k1,$80000224 k1レジスタの数値が0になるまで 00000224のアドレスまで処理を戻す つまり、40回繰り返すという事(10進数で64回) F1000238 0004235A addi k0,k0,$0004 k0レジスタの数値に0004を加算しk0レジスタへ格納 F100023C 00188FA9 lw t1,$0018(sp) 退避させていたt1レジスタの数値を元に戻す F1000240 00148FA8 lw t0,$0014(sp) 退避させていたt0レジスタの数値を元に戻す F1000244 001C27BD addiu sp,sp,$001c 恐らく00000204のアドレスに存在していた命令かな? 周辺の命令も潰してるので違うと思いますが・・・ F1000248 A05F3C1A lui k0,$a05f k0レジスタの上位4ケタにA05Fを格納 F100024C AE00375A ori k0,k0,$ae00 k0レジスタにAE00を加算にk0レジスタへ格納 ここでまたA05FAE00という数値が完成 F1000250 00080340 jr k0 そのA05FAE00のアドレスへプログラムをジャンプさせる F1000254 00000000 nop ジャンプ命令には遅延スロットというのが存在し ついでにこの行の命令が実行されてしまうので それを防ぐ為にnopにしている様です 上のプログラムでコードが使用可能になり 以下のコードが適応される 81000204 A05F3C1A lui k0,$a05f k0レジスタの上位4ケタにA05Fを格納 81000208 AE00375A ori k0,k0,$ae00 k0レジスタにAE00を加算にk0レジスタへ格納 ここでまたA05FAE00という数値が完成 8100020C 00080340 jr k0 そのA05FAE00のアドレスへプログラムをジャンプさせる 81000210 00000000 nop 同じく遅延スロット潰し