忍者ブログ
マイナー系攻略路線の姉妹サイト。 今後の予定とか攻略中の出来事などなど。 チラシの裏みたいなものだから見る価値は無いと思う。
[46] [45] [44] [43] [42] [41] [40] [39] [38] [37] [36
Posted by - 2024.11.21,Thu
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by No Name Ninja - 2010.02.26,Fri

規則正しく並んでいる複数のポインターに対してシリアル化っぽいことをしたい。
シリアル化+比較でorの条件もつけたい。
しかし、これ以上フラグに入れる場所が無いのでどうしたものか。


という悩みを改善すべくMLA,MLO,MLE,PMA,PMO,PMEを纏めることにした。
これにより多重シリアルや、シリアル内での柔軟な比較が可能になる予定。
_CN0 変更元サンプル
_MLA 0x40000000 0x0000AAAA 0x0000BBBB
_MLO 0x00000000 0x00000001 0x00000002
_MLE 0x00000000 0x00000003 0x00000000
_PIN 0x00000000 0x0000CCCC 0x00000000
_PTR 0x00000000 0x0000DDDD 0x00000000
_PMA 0x10000000 0x0000EEEE 0x000000FF
_PMO 0x00000000 0x00000001 0x00000002
_PME 0x00000000 0x00000003 0x00000000

_CN0 変更後サンプル
_VOF 0x00000000 0x00000002 0x00000001 //ValueOffset = 2*1
_NWR 0x40000000 0x0000AAAA 0x0000BBBB
_PIN 0x00000000 0x0000CCCC 0x00000000
_PTR 0x00000000 0x0000DDDD 0x00000000
_PWR 0x10000000 0x0000EEEE 0x000000FF
_MLS 0x00000000 0x00000001 0x00050003 //AddressOffset=1  上5行を3回ループ


代わりに下記を追加予定
_MLS 上何行を何回ループするか + AddressOffset
_AOF AddressOffset  _MLSと設定が同じ場合には不要
_VOF ValueOffset   0の場合は不要
_POF PointerOffset  0の場合は不要

PR
Comments
無題
コピーバイトでやってみたところ_MLSは指定回数+1になってるようです。+1じゃにないほうがいいかもしれないです。
_CPY 0x20000000 0x00001010 0x00000000
_PST 0x20000000 0x00001000 0x00000000
_MLS 0x00000000 0x00000001 0x00020004 5bytecopy?

配列ポインタですがPTRでは使えないようでした。
_CN0 TEST動作OK
_NWR 0x80000000 0x00001010 0x08801000
_NWR 0x80000000 0x00001014 0x08801004
_NWR 0x80000000 0x00001018 0x08801008
_NWR 0x80000000 0x0000101C 0x0880100C
_OFF 0x00200000 0x00000004 0x00000000
_PIN 0x80000000 0x00001010 0x00000000
_PWR 0x20000000 0x00000000 0x00000001
_MLS 0x00000000 0x00000000 0x00030004

_CN0 TEST2 X
_NWR 0x80000000 0x00001010 0x08801000
_NWR 0x80000000 0x00001014 0x08801004
_NWR 0x80000000 0x00001018 0x08801008
_NWR 0x80000000 0x0000101C 0x0880100C
_NWR 0x80000000 0x00001020 0x08801010
_PIN 0x80000000 0x00001020 0x00000000
_OFF 0x00200000 0x00000004 0x00000000
_PTR 0x80000000 0x00001010 0x00000000
_PWR 0x20000000 0x00000000 0x00000001
_MLS 0x00000000 0x00000000 0x00030004
Posted by NONAME - 2010.03.03,Wed 21:55:15 / Edit
無題
最初にMLSに到達した時点で既に一回分は書き込んでいるので、こういう仕様になっています。
なのでMLSの説明も「上L行をv回追加で実行」という微妙な表現に。
ループ回数指定が0と1の時で同じになりますが、最後のループを飛ばすフラグを次で付けることにします。


_CN0 TEST2 X
_NWR 0x80000000 0x00001010 0x08801000
_NWR 0x80000000 0x00001014 0x08801004
_NWR 0x80000000 0x00001018 0x08801008
_NWR 0x80000000 0x0000101C 0x0880100C
_NWR 0x80000000 0x00001020 0x08801010
_PIN 0x80000000 0x00001020 0x00000000 Base=08801010
_OFF 0x00200000 0x00000004 0x00000000 PoinerOffset=4
_PTR 0x80000000 0x00001010 0x00000000 Pointer=08801010+1010+4*i=08802020+4*iでエラー
_PWR 0x20000000 0x00000000 0x00000001 エラーが出ているので書き込み停止
_MLS 0x00000000 0x00000000 0x00030004 3行上に戻って4回追加でループ
一度エラーが出たら次のPINまでポインター系は飛ばす仕様なのでずっとエラーです。


多分こんな感じのを意図していると予想。
_CN0 TEST3
_NWR 0x80000000 0x00001010 0x08801000
_NWR 0x80000000 0x00001014 0x08801004
_NWR 0x80000000 0x00001018 0x08801008
_NWR 0x80000000 0x0000101C 0x0880100C
_NWR 0x80000000 0x00001020 0x08801010
_PIN 0x80000000 0x00001020 0x00000000 Base=08801010
_OFF 0x00200000 0x00000004 0x00000000 PointerOffset=4
_PTR 0x80000000 0x00000000 0x00000000 Pointer=08801010+0+4*i
_PWR 0x40000000 0x00000040 0x000003E7 読み込んで+40に書き込み
_MLS 0x00000000 0x00000000 0x00040004 4行上に戻って4回追加でループ
08801000+40から4刻みで1+4回3E7を書き込み。
Posted by 14.4k - 2010.03.03,Wed 23:27:53 / Edit
Post a Comment
Name :
Title :
E-mail :
URL :
Comments :
Pass :   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
TrackBack URL
TrackBacks
最新記事
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ブログ内検索
最新コメント
[11/15 sd]
[05/20 NONAME]
[05/18 NONAME]
Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]