サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
5: 2009-11-17 (火) 12:08:14 ソース 6: 2009-12-01 (火) 19:52:18 lina ソース
Line 1: Line 1:
-* ASKAでOSASKアプリを作ってみよう、のページ+TITLE:x 
 +* ASKAでOSASKアプリを作ってみよう、のページ [#s3c5247c]
-(by [[K]], 2004.12.12) -(by [[K]], 2004.12.12)
-前半はnask編とほとんど同じです。 -前半はnask編とほとんど同じです。
--nask編はこちら → [[guide/nask]] --nask編はこちら → [[guide/nask]]
-*** まずは開発環境の入手+*** まずは開発環境の入手 [#z9fc93ec]
-この記述は数ヶ月以内に更新されそうですが、とりあえず現状重視で。 -この記述は数ヶ月以内に更新されそうですが、とりあえず現状重視で。
-[[downloads/dev]]のページへ行って、''最新版''のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。 -[[downloads/dev]]のページへ行って、''最新版''のところの、「tolset08」というやつをダウンロードしてください(lzhでもsarでもどっちでもOK)。
Line 10: Line 11:
-これをどこでもいいですので、適当なところに解凍します。 -これをどこでもいいですので、適当なところに解凍します。
-*** プロジェクト作成+*** プロジェクト作成 [#acd950ca]
-次に、新規にアプリを作りますので、z_new_oというディレクトリを探してください。これをコピーして、同じディレクトリにペーストします。すると、「コピー ~ z_new_o」とかいう名前のフォルダができます。これを「askahelo」にリネームしてください。 -次に、新規にアプリを作りますので、z_new_oというディレクトリを探してください。これをコピーして、同じディレクトリにペーストします。すると、「コピー ~ z_new_o」とかいう名前のフォルダができます。これを「askahelo」にリネームしてください。
--もちろん他の好きな名前でもいいですよ。 --もちろん他の好きな名前でもいいですよ。
Line 18: Line 19:
-最後にnaskheloの中で 右クリック→新規作成→テキストドキュメント とやって、新規テキストドキュメントを作ります。そしてこれを、「askahelo.ask」に改名します。拡張子を変更するとどうたらこーたらとかいいますが、無視してOKしてください。 -最後にnaskheloの中で 右クリック→新規作成→テキストドキュメント とやって、新規テキストドキュメントを作ります。そしてこれを、「askahelo.ask」に改名します。拡張子を変更するとどうたらこーたらとかいいますが、無視してOKしてください。
-*** ソース作成+*** ソース作成 [#y71691d0]
-さて、それではaskahelo.askを開いて、以下のソースをがしがしと入力してください。 -さて、それではaskahelo.askを開いて、以下のソースをがしがしと入力してください。
--asmout文の中以外では、大文字小文字の区別があるので注意してください。 --asmout文の中以外では、大文字小文字の区別があるので注意してください。
Line 84: Line 85:
-*** どうやってアセンブルするの?+*** どうやってアセンブルするの? [#v2c5e547]
-まず、コンソールを開きます。開き方は使っているOSによって違います。 -まず、コンソールを開きます。開き方は使っているOSによって違います。
--Win2000, WinXPなどのNT系: !cons_nt.batをダブルクリック --Win2000, WinXPなどのNT系: !cons_nt.batをダブルクリック
Line 95: Line 96:
--nask版よりも1バイト小さいのは、ウィンドウタイトルの違いのせいです。ウィンドウタイトルを同じにすると、1バイトも違いません(サイズだけではなく、内容も)。 --nask版よりも1バイト小さいのは、ウィンドウタイトルの違いのせいです。ウィンドウタイトルを同じにすると、1バイトも違いません(サイズだけではなく、内容も)。
-*** どうやってテスト実行するの?+*** どうやってテスト実行するの? [#f739fe04]
-同じくコンソールから、make runとだけうってEnterを押してください。 -同じくコンソールから、make runとだけうってEnterを押してください。
-しばらく待っていると、勝手にOSASKがエミュレータ環境で起動します。 -しばらく待っていると、勝手にOSASKがエミュレータ環境で起動します。
Line 101: Line 102:
-うまくいけばウィンドウが表示されます。 -うまくいけばウィンドウが表示されます。
-*** ほかのアセンブラになれている人へ+*** ほかのアセンブラになれている人へ [#mef0ee17]
-ASKAはあまりおすすめできない''アセンブラ''です。読むのはそんなに大変ではないのですが、書くのはえらく骨が折れます。また、将来ASKAの文法はマシになるような気がするので、わざわざ今の癖の強い書き方を覚えることもないでしょう。 -ASKAはあまりおすすめできない''アセンブラ''です。読むのはそんなに大変ではないのですが、書くのはえらく骨が折れます。また、将来ASKAの文法はマシになるような気がするので、わざわざ今の癖の強い書き方を覚えることもないでしょう。
-asmout文の中はnaskの文法で書きます。不明なところは[[guide/nask]]を見てください。 -asmout文の中はnaskの文法で書きます。不明なところは[[guide/nask]]を見てください。
Line 111: Line 112:
-ASKAでは、 #define とか #include が使えます。 #if も #else も #endif もつかえます(というかCのプリプロセッサをそのまま使っています)。 -ASKAでは、 #define とか #include が使えます。 #if も #else も #endif もつかえます(というかCのプリプロセッサをそのまま使っています)。
-*** ほかのOSのAPIになれている人へ+*** ほかのOSのAPIになれている人へ [#v3292595]
-OSASKではAPI呼び出しはメモリを経由したポインタ渡しです。メモリにファンクション番号とパラメータを並べて、その先頭アドレスをEBXにいれて、CALL 0xc7:0をするだけです。正常終了する限りにおいて、EBX以外のレジスタは保存されます(ファンクション0x04を除く)。フラグは保存されません。 -OSASKではAPI呼び出しはメモリを経由したポインタ渡しです。メモリにファンクション番号とパラメータを並べて、その先頭アドレスをEBXにいれて、CALL 0xc7:0をするだけです。正常終了する限りにおいて、EBX以外のレジスタは保存されます(ファンクション0x04を除く)。フラグは保存されません。
-毎回.dataセクションにパラメータをだらだら書かないといけないのか、という誤解をする人がいますが、そんなことはありません。スタック渡しっぽいことも簡単にできます。たとえばfunc_initの呼び出しは、以下のようにやってもいいのです。 -毎回.dataセクションにパラメータをだらだら書かないといけないのか、という誤解をする人がいますが、そんなことはありません。スタック渡しっぽいことも簡単にできます。たとえばfunc_initの呼び出しは、以下のようにやってもいいのです。
Line 123: Line 124:
--ということが面倒極まりないので、普通は全部のデータを.dataセクションにおきます。リードオンリーのデータも.dataセクションに置いちゃいます。そうすればややこしいセグメントに悩まされずに済みますからね。 --ということが面倒極まりないので、普通は全部のデータを.dataセクションにおきます。リードオンリーのデータも.dataセクションに置いちゃいます。そうすればややこしいセグメントに悩まされずに済みますからね。
-*** 雑な説明+*** 雑な説明 [#h76e09bb]
-結局のところ、これはAPI呼び出しCALLを5回やって、5つのAPIを実行しているだけです。 -結局のところ、これはAPI呼び出しCALLを5回やって、5つのAPIを実行しているだけです。
-OSASKのAPIでは、必ず最後に終了ファンクション0x0000があります。これを書かないと、その次も通常ファンクションだとみなされます。逆にこの例の場合、5つのファンクションをつなげることもできるわけです。そうすればCALLは1回で済みます。 -OSASKのAPIでは、必ず最後に終了ファンクション0x0000があります。これを書かないと、その次も通常ファンクションだとみなされます。逆にこの例の場合、5つのファンクションをつなげることもできるわけです。そうすればCALLは1回で済みます。
Line 137: Line 138:
-それぞれについてパラメータの意味などは上記の説明を参考にしてください。 -それぞれについてパラメータの意味などは上記の説明を参考にしてください。
-*** もっと詳しく説明してくれー+*** もっと詳しく説明してくれー [#fa4206ce]
-そのうちやるかもしれません。このページは長くなったので別のページで。 -そのうちやるかもしれません。このページは長くなったので別のページで。
-ほかのAPIとかも。 -ほかのAPIとかも。
Line 146: Line 147:
--[[GUIGUI00_man]] --[[GUIGUI00_man]]
-* こめんと欄+* こめんと欄 [#lcf78b69]
-ASKAによるプログラミングはおすすめしがたいところがあるので、このページはネタです。 -- [[K]] SIZE(10){2004-12-12 (日) 20:07:06} -ASKAによるプログラミングはおすすめしがたいところがあるので、このページはネタです。 -- [[K]] SIZE(10){2004-12-12 (日) 20:07:06}
-定数計算まわりのじゃじゃ馬なところが改善されて、naskレベルのラベルをthroughしてくれる機能があれば、結構おすすめできるんですけどねえ・・・。 -- [[K]] SIZE(10){2004-12-12 (日) 20:09:04} -定数計算まわりのじゃじゃ馬なところが改善されて、naskレベルのラベルをthroughしてくれる機能があれば、結構おすすめできるんですけどねえ・・・。 -- [[K]] SIZE(10){2004-12-12 (日) 20:09:04}

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

目次
メンバー一覧


最新の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コミュニティによって管理・運営されています。