Home > スポンサー広告 > TempAR 0xC2 レジスタ退避?2

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント: -

Home > スポンサー広告 > TempAR 0xC2 レジスタ退避?2

Home > ゲームその他 > TempAR 0xC2 レジスタ退避?2

TempAR 0xC2 レジスタ退避?2


レジスタの値を書き出すだけのプログラムを動かしてみたらこんな感じだった。

at=0x88237E8C

v0=0x882579F0
v1=0x000000C2

a0~a3=0x00000000

t0=0x00000001
t1=0x00004000
t2~t4=0x00000000
t5=0x00000040
t6=0xFFFFFF80
t7=0x880EAE90

s0=0x00000000
s1=0x00000098
s2=0x000000C2
s3~s5=0x00000000
s6=0x000007D5
s7=0x00000000

t8=0x00000000
t9=0x880EB810

k0=0x00000000
k1=0x00000000
gp=0x88250B70
sp=0x882D1938
fp=0x8824FAA8
ra=0x8823816C



次のようなプログラムだとクラッシュするので

and s1,zero,zero ;s1=0 s1へ0を入れて破壊


Exception - Interrupt
Thread ID - 0x04643F71
Th Name - TempAR_thread
Module ID - 0x002A9163
Mod Name - sceThreadManager
EPC - 0x8802EC70
Cause - 0x10000400
BadVAddr - 0x0ED39D18
Status - 0x00088602
zr:0x00000000 at:0x882366D8 v0:0x88021770 v1:0xDEADBEEF
a0:0x43E00008 a1:0x00000004 a2:0x00000002 a3:0x09FFFFFC
t0:0x00000000 t1:0x00004000 t2:0x00000000 t3:0x00000000
t4:0x00000000 t5:0x00000040 t6:0xFFFFFF80 t7:0x880EAE90
s0:0x43E00008 s1:0x43E00008 s2:0x00000000 s3:0x00000000
s4:0x00000000 s5:0x00000000 s6:0x00000779 s7:0x00000000
t8:0x00000000 t9:0x880EB950 k0:0x00000000 k1:0x00000000
gp:0x88250B70 sp:0x882D1928 fp:0x8824F850 ra:0x882366D8


試しに次のようなプログラムを動かしてみたらクラッシュしなかった。
やっぱりsレジスタはこちらでリストアする必要ありなのか。

or t0,zero,s1 ;t0=s1 s1をt0へ退避
and s1,zero,zero ;s1=0 s1へ0を入れて破壊
or s1,zero,t0 ;s1=t0 s1をt0からリストア


次のようなプログラムだと逆にクラッシュしなくなるのは別の話っぽいな。

and at,zero,zero
and v0~v1,zero,zero
and a0~a3,zero,zero
and t0~t9,zero,zero
and s0~s7,zero,zero


関連記事
スポンサーサイト

コメント: -

Home > ゲームその他 > TempAR 0xC2 レジスタ退避?2

Return to page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。