トップ->アセンブラ 第2章

あなたは

人目のアセンブラの受講生です。

アセンブラ入門内検索

目次

アセンブラ入門

アセンブラ 〜MS-DOSの世界〜 トップ
0. はじめに

1. コマンドラインからの引数
   1. コマンドラインからの引数
   2. 自分の名前は?

2. メモリー管理
   1. 環境変数
   2. 練習問題
   3. メモリーの割り当て
   4. メモリーの解放
   5. UMB
   6. メモリー管理
   7. 常駐プログラム(TSR)

3. 標準入出力
   1. 1文字入力
   2. キーボードバッファー
   3. 1文字出力
   4. 文字列出力
   5. 文字列入力
   6. 練習問題
   7. RS-232C
   8. プリンタ

4. ファイル操作
   1. ファイルオープン
   2. ファイルクローズ
   3. ファイルリード
   4. ファイルライト
   5. 練習問題1
   6. ファイルポインタの移動
   7. 練習問題2
   8. ファイル作成
   9. ファイル属性
   10. ファイル削除
   11. ファイル名変更
   12. ファイル属性の設定・取得
   13. ファイル日時の設定・取得
   14. ファイル検索
   15. 練習問題3
   16. 予約されているファイルハンドル
   17. ファイルハンドルの二重化(リダイレクト)

5. ディレクトリ操作
   1. ディレクトリ操作
   2. カレントディレクトリ変更
   3. カレントディレクトリ取得
   4. ディレクトリ作成
   5. ディレクトリ削除
   6. 練習問題

6. ディスク操作
   1. ディスクのリセット
   2. カレントディスクの取得
   3. カレントディスクの変更
   4. ドライブ情報の取得
   5. 空き容量取得
   6. 練習問題
   7. 交換可能ドライブの検査
   8. リトライ回数の設定
   9. ディスクの直接操作

7. プロセス管理
   1. プログラムの実行
   2. 練習問題
   3. プログラム終了
   4. リターンコード
   5. PSPアドレスの取得・設定
   6. DTAアドレスの取得・設定
   7. プログラムの実行2
   8. 練習問題2

8. その他のシステムコール
   1. 日付の取得・設定
   2. 時間の取得・設定
   3. 割り込みベクタの設定・取得
   4. ベリファイフラグ
   5. MS-DOSのバージョン取得
   6. 国別情報の取得・設定
   7. CTRL + Cの検査
   8. CTRL + Cの処理

9. EMS
   1. EMSとは
   2. EMSを使用するには
   3. EMSが使用可能か?
   4. EMSのバージョン取得
   5. ページフレームのアドレス取得
   6. 未使用ページ数の取得
   7. アロケート、デアロケート
   8. マップ、アンマップ
   9. ページマップのセーブ、リストア
   10. ハンドル数の取得
   11. ハンドルページの取得
   12. 再アロケート
   13. ハンドル名
   14. その他

10. XMS
   1. XMSとは
   2. XMS使用法
   3. XMSバージョンの取得
   4. HMAとは
   5. HMAの割り当て・解放
   6. A20ラインの設定
   7. EMBとは
   8. EMBの空き容量取得
   9. EMBの割り当て・解放
   10. EMBのコピー
   11. EMBのロック・アンロック
   12. EMBハンドル情報取得
   13. EMBの再割り当て
   14. UMBの割り当て・解放

11. エスケープシーケンス
   1. エスケープシーケンスとは
   2. エスケープシーケンス表

12. 終わりに


・ このページの先頭に戻る
・ トップページに戻る



・ このページの先頭に戻る
・ トップページに戻る

トップ-> アセンブラ 第2章-> 第9章.EMS-> 9-2. EMSを使用するには

←前ページへ :  トップへ :  次ページへ→



9-2.EMSを使用するには

  EMSを使用するためには、ドライバーを組み込まなくてはなりません。当たり前ですが。 ドライバーの組み込み方は、このホームページの範囲外なので、説明書でも読んでください。

  アセンブラでEMSを使うためには次の手順を踏まなくてはなりません。

  • EMM(EMSドライバ)が組み込まれているかどうか調べる(ノートがあるか調べる)
  • EMSメモリーの空き容量を調べる(ノートのページが余っているか調べる)
  • EMSメモリーを割り当てる(空きページを使うよう宣言する)
  • ページフレームの場所を調べる
  • EMSメモリーを物理ページにマップする(ノートのページをめくる)
  • メモリーにアクセス(ノートにメモする、読む)
  • EMSメモリーを物理ページからアンマップする(ノートを閉じる)
  • EMSメモリーを解放する(ノートのページを消しゴムで消す)
青字の部分は、必要に応じて繰り返す
  MS-DOSのシステムコールは、「INT 21h」を呼び出して使用していましたが、 EMMのシステムコールは「INT 67h」を使用します。

  EMSを使用するにあたり、注意事項をあげます。

EMS領域をスタックとして使用しない
  EMSをスタックとして使用している最中に、EMSを使用する常駐プログラムやデバイスドライバー に制御が移った場合、そのプログラムがスタックを使用する可能性がある。このような場合、 EMSを使用している常駐プログラムなどが、自分自身あるいは自分用のデータを 破壊してしまう可能性がある。

常駐プログラムなどでEMSを使用する場合
  EMSを使用する常駐プログラムを作成する場合、EMSを使用する前にページが マップされているかどうか調べ、マップされていたらどのページがマップされているか 調べ、常駐プログラムから本来のプログラムに戻る際に、もとのページをマップ しなおさなければならない。つまりだれかがノートを開いていたら、自分が 使う前に、しおりを挟み、自分が使い終わったときに、もとのページを開いて おかないといけない。


  では、次ページからEMSのファンクションの説明をします。EMSのファンクションには、 OSのみが使用可能なファンクションも多く設けられています。これらはプログラムを 作るだけでは関係ないし、またEMMがプログラムからの呼び出しだと判断した場合には、 何もしない場合もありますし、OSが壊れる場合もありますので、省略します。OSを 作ろうというならば必要になってくるかもしれませんが、そのような考えを持っている 人は、こんなページを見るわけないでしょうから・・・。

  なお、EMSの規格はVersion 4.0のものです。このページで紹介するような基本的な ファンクションは3.2でもほとんど変わっていませんので、省略します。


←前ページへ :  トップへ :  次ページへ→