かーそるあいてむ変更 例:NANATAM
MIPS OP 説明
0x3C0808C5 lui t0,$08c5 t0=$08c50000
0x3508F3F4 ori t0,t0,$f3f4 t0=$08c5f3f4 パッドアドレス
0x8D0C0000 lw t4,$0000(t0) t4=$08c5f3f4 パッド値ロード
0x3C0808D4 lui t0,$08d4 t0=$08d40000
0x35088C46 ori t0,t0,$8c46 t0=$08d48c46 カーソルの位置
0x81080000 lb t0,$0000(t0) t0=$08d48c46 カーソルの位置ロード
0x34090018 ori t1,zero,$0018 t1=$00000018 アイテムの間隔0x18ずつ
0x01090018 mult t0,t1 オフセット計算
0x00005012 mflo t2 計算結果転送#mult t2,t1,t20はPSPだとフリーズ?
0x3C0808D0 lui t0,$08d0 t0=$08d00000
0x3508A77C ori t0,t0,$a77c t0=$08d0a77c アイテム1個目
0x010A4021 addu t0,t0,t2 カーソルのアイテムアドレス
0x340A1100 ori t2,zero,$1100 t2=$00001100 パッド値=L+三角
0x158A0009 bne t4,t2,$+A パッド値比較
0x00000000 nop
0x85090000 lh t1,$0000(t0) 加算+1
0x21290001 addi t1,t1,$0001
0xA5090000 sh t1,$0000(t0)
0x292A0338 slti t2,t1,$0338 339以上にならないよう防止
0x15400003 bne t2,zero,$+4
0x00000000 nop
0x34090338 ori t1,zero,$0338 t1=$00000338
0xA5090000 sh t1,$0000(t0)
0x340A8100 ori t2,zero,$8100 t2=$00008100 パッド値=L+□
0x158A0009 bne t4,t2,$+A
0x00000000 nop
0x85090000 lh t1,$0000(t0) 減算-1
0x2129FFFF addi t1,t1,$ffff
0xA5090000 sh t1,$0000(t0)
0x292AFFFF slti t2,t1,$ffff FFFE以下にならないよう防止
0x11400003 beq t2,zero,$+4
0x00000000 nop
0x3409FFFF ori t1,zero,$ffff t1=$0000ffff
0xA5090000 sh t1,$0000(t0)
#ここから下Hex表示
0x3C090880 lui t1,$0880 t1=$08800000
0x35293002 ori t1,t1,$3002 t1=$08803002 書き込みアドレスセット
0x81080000 lb t0,$0000(t0) カーソルのアイテムデータ読み込み
0x340A4F82 ori t2,zero,$4f82 t2=$00004f82 全角0
0x310B000F andi t3,t0,$000f アイテムデータの1桁目マスク
0x00000000 nop
0x340D000A ori t5,zero,$000a t5=$0000000a 0~9まで
0x340E0000 ori t6,zero,$0000 判定初期化
0x00000000 nop
0x15CB0002 bne t6,t3,$+3 一致したら書き込み
0x00000000 nop
0xA52A0002 sh t2,$0002(t1) [08803004]
0x25ADFFFF addiu t5,t5,$ffff t5=$00000009 0~9のカウント
0x254A0100 addiu t2,t2,$0100 t2=$00005082 0x824F+0x1=全角1
0x25CE0001 addiu t6,t6,$0001 t6=$00000001 判定加算
0x15A0FFF8 bne t5,zero,$-7 繰り返し
0x00000000 nop
0x340A6082 ori t2,zero,$6082 t2=$00006082 全角A
0x340D0006 ori t5,zero,$0006 t5=$00000006 A~Fまで
0x25CE0000 addiu t6,t6,$0000 t6=$00000001 判定初期化
0x00000000 nop
0x15CB0002 bne t6,t3,$+3 一致したら書き込み
0x00000000 nop
0xA52A0002 sh t2,$0002(t1) [08803004]
0x25ADFFFF addiu t5,t5,$ffff t5=$00000005 0~9のカウント
0x254A0100 addiu t2,t2,$0100 t2=$00006182 0x8260+0x1=全角B
0x25CE0001 addiu t6,t6,$0001 t6=$00000002 判定加算
0x15A0FFF8 bne t5,zero,$-7 繰り返し
0x00000000 nop
0x310C00F0 andi t4,t0,$00f0 アイテムデータの1桁目マスク
0x340A4F82 ori t2,zero,$4f82 t2=$00004f82 全角0
0x340D000A ori t5,zero,$000a t5=$0000000a 0~9まで
0x340E0000 ori t6,zero,$0000 判定初期化
0x00000000 nop
0x15CC0002 bne t6,t4,$+3 一致したら書き込み
0x00000000 nop
0xA52A0000 sh t2,$0000(t1)
0x25ADFFFF addiu t5,t5,$ffff t5=$00000009 0~9のカウント
0x254A0100 addiu t2,t2,$0100 t2=$00005082 0x824F+0x1=全角1
0x25CE0010 addiu t6,t6,$0010 t6=$00000010 判定加算
0x15A0FFF9 bne t5,zero,$-6 繰り返し
0x00000000 nop
0x340A6082 ori t2,zero,$6082 t2=$00006082 全角A
0x340D0006 ori t5,zero,$0006 t5=$00000006 A~Fまで
0x25CE0000 addiu t6,t6,$0000 t6=$00000010 判定初期化
0x00000000 nop
0x15CC0002 bne t6,t4,$+3 一致したら書き込み
0x00000000 nop
0xA52A0000 sh t2,$0000(t1)
0x25ADFFFF addiu t5,t5,$ffff 0~9のカウント
0x254A0100 addiu t2,t2,$0100 t2=$00006182
0x25CE0010 addiu t6,t6,$0010 B判定加算
0x15A0FFF9 bne t5,zero,$-6 繰り返し
0x00000000 nop
0x03E00008 jr ra Raにもどる
%xが使えれば下はいらないかも?へっぽこでスマソ。