addiu sp, sp, $ffe8 sw ra, $0010(sp) nop lui a0, $8019 a0=$80190000 addiu a0, a0, $188e a0=$8019188e ori v0, zero, $0004 v0=$00000004 sb v0, $0000(a0) [8019188e]:攻撃回数を四回に設定 nop lui a0, $8019 a0=$80190000 lw a0, $0d60(a0) a0=$80190d60 lb v0, $001d(a0) :右手武器コード読み nop ori v1, zero, $00ff v1=$000000ff beq v0, v1, $*1 :右手が素手の場合の分岐、*1へ nop sltiu v1, v0, $0080 bne v1, zero, $*0 :右手が武器なら*0へ、盾なら分岐しない nop lui a0, $8019 a0=$80190000 lw a0, $0d60(a0) a0=$80190d60 lb v0, $001f(a0) :左手武器コード読み j $*0 :右手が盾なので左手の武器で確定、*0へ nop lui a0, $8019 a0=$80190000:*1 lw a0, $0d60(a0) a0=$80190d60 lb v0, $001f(a0) :左手武器コード読み ori v1, zero, $00ff v1=$000000ff beq v0, v1, $*0 :左手も素手なら素手で確定、*0へ nop sltiu v1, v0, $0080 bne v1, zero, $*0 :左手が武器なら*0へ、盾なら分岐しない nop ori v0, zero, $00ff v0=$000000ff:左手盾、右手素手なので素手で確定 nop lui at, $8019 at=$80190000:*0 sb v0, $1890(at) [80191890]:右手武器格納 sb v0, $1891(at) [80191891]:左手武器に同じコードを格納 nop jal $001876b8 :装備ブレークのルーチンで戦う処理の代用 nop ori v0, zero, $0000 lui v0, $8019 v0=$80190000 lw v0, $0d5c(v0) v0=$80190d5c nop lhu v1, $0004(v0) :HPダメージ値読み nop sll v1, v1, 16 sra a0, v1, 16 srl v1, v1, 31 addu a0, a0, v1 sra a0, a0, 1 :HPダメージ半減 sh a0, $0004(v0) :HPダメージ値格納 nop lw ra, $0010(sp) addiu sp, sp, $0018 jr ra nop