サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2008-12-23 (火) 21:40:20 ソース
Line 1: Line 1:
 +* ぐいぐい01に関するメモ-16
 +-(by [[K]], 2008.12.23)
 +-メモのうち重要な部分をそのうちまとめてまともなページを作る
 +*** (31) abcdw007のAPIパケットの特徴
 +-マニュアル風に書いたらきっとmanの方になるような内容だけど、どちらかというと面白おかしく書くので、memoに書くことにしました。
 +-アセンブラレベルでこそabcdw007の仕様のよさがはっきりするので、それを書きたいと思います。
 +-abcdw007以降の仕様では、APIを呼び出すには、ESIをアプリ起動時の値に戻して(変更していないのならそのままで)
 + EDI = 0; CALL([ESI+20]); DB ...
 +-とするのが一般的です。EDIをゼロにするとCALLの直後がパケット開始アドレスだと見なされて、パケットの実行が終わるとDBのあとのところへちゃんと戻ってきてくれます。EDIに適当なアドレスを入れた場合は、そこがパケット開始アドレスになります。旧OSASKのEBXみたいなものだと思えば分かりやすいでしょう(旧OSASKとは違い、EDIはパケット終端の次のアドレスまで進んでくれます・・・まだ未実装ですが)。
 +--なお上記の EDI = 0; はASKAでは XOR(EDI, EDI); という意味になります。もちろんMOVで0にしたければそれでもいいですが。
 +--なおアプリ起動時はEDI=0, EBP=[ESI+20]になっていますので、何も設定せずにCALL(EBP); DB ...だけでいけます。
 +-まあなにはともあれ、一つ例を出しましょう。
 + EDI = 0; CALL([ESI+20]); DB(0x40);
 +-これは正常終了です。パケットの中身は、gh4でエンコードされているので[4 0]です。
 +--gh4については[[GUIGU01/man004]]を参照。
 +* こめんと欄
 +#comment

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。