テイルズオブエターニアを題材にしています
v0には現在の所持金、t2には購入金額が格納されています
この2つのレジスタに注意しながら読んで下さい。

消費税加算プログラムコード
1番左側の8000〜802Cはアドレスの下4ケタです

8000 24150069 addiu s5,zero,#$0069
8004 01550018 mult t2,s5
8008 00005012 mflo t2
800C 24150064 addiu s5,zero,#$0064
8010 0155001A div t2,s5
8014 00005012 mflo t2
8018 004A1023 subu v0,v0,t2
801C 04410002 bgez v0,$80008128
8020 00000000 nop
8024 00001021 addu v0,zero,zero
8028 AE42092C sw v0,$092c(s2)
802C 080467D0 j $80119F40


空きメモリに飛ばすタイミングは
80119F3Cの減算命令が1番いいでしょう
減算命令と、すぐ下のストア命令を
80119F3C 08002000 j $80008000
80119F40 00000000 nop
に書換えて下さい。


ではプログラムの説明です
買い物金額は100(10進数です)を例にします。

1行目でs5に69を書き込みます
69は10進数で105になります。

2行目でt2とs5の掛算をします
式で表すと 100×105=10500
ここで購入金額が10500になります。

3行目でt2×s5の結果をt2に書き込みます

4行目でs5に64を書き込みます
64は10進数で100になりますね

5行目でt2とs5の割算をします
式で表すと 10500÷100=105
ここで購入金額が105になります。

6行目でt2÷s5の結果をt2に書き込みます

7行目で現在の所持金からt2を減らします
この時点ですでにt2の購入金額は5%加算されています。

8行目でv0の数値が0より大きければ
8020と8024の命令を飛ばして8028に分岐します

9行目はnop(何もしない)にします
10行目はv0に0を書き込む命令です
この命令については後で説明します

11行目で買い物で減ったお金を現在所持金に書き込みます
12行目でプログラムを元のプログラムに戻します


8行目でv0より0が大きければ分岐とありますが
これは消費税が加算されたせいで
現在所持金より購入金額がオーバーしてしまい
所持金がマイナスになる事がある為です
このbgez命令でそれを監視して
最終的に書き込む予定の現在金額がマイナスならば
10行目のv0に0を書き込む命令を実行させます
v0に0を書き込む=マイナスなのを0に戻すと考えて下さい
逆に、マイナスになっていなければ10行目は無視されます


これで出来たエターニアのコードです
買い物に消費税がかかる
D0119F38 5012
80119F3C 2040
D0119F38 5012
80119F3E 0800
D0119F38 5012
80119F40 0000
D0119F38 5012
80119F42 0000
80008100 0069
80008102 2415
80008104 0018
80008106 0155
80008108 5012
8000810C 0064
8000810E 2415
80008110 001A
80008112 0155
80008114 5012
80008118 1023
8000811A 004A
8000811C 0002
8000811E 0441
80008124 1021
80008128 092C
8000812A AE42
8000812C 67D0
8000812E 0804
5%の消費税が加算されます
「割引セール実施中」とは併用出来ません。