アセンブラ入門内検索 アセンブラ入門 アセンブラ 〜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. 終わりに このページの先頭に戻る トップページに戻る このページの先頭に戻る トップページに戻る
アセンブラ入門 アセンブラ 〜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. 終わりに このページの先頭に戻る トップページに戻る このページの先頭に戻る トップページに戻る
ファイルハンドルの二重化 AH = 46h BX = 二重化するファイルハンドル CX = 新しいファイルハンドル INT 21h 戻り値:CF = 0 の時 正常に実行された CF = 1 の時 AX = 04 : オープンされているファイルハンドルが多すぎる AX = 06 : BXで指定したファイルハンドルはオープンされていない
すなわち、「DIR」コマンドの結果を「DIR.TXT」に 保存する場合は次のようにする。(つまり「C:\>DIR > ABC.TXT」)
標準出力をファイルにすり替えるリダイレクト 「ABC.TXT」をオープンし、そのファイルハンドルをBXに代入 CXに標準出力のファイルハンドルを代入 ファイルハンドルの二重化を行う (これで、標準出力に出力をすると、ディスプレイではなくて「ABC.TXT」に書かれる。) 「COMMAND.COM /C DIR」を実行する 「ABC.TXT」をクローズする
標準入力をファイルにすり替えるリダイレクト 入力用ファイルをオープンし、そのファイルハンドルをBXに代入 CXに標準入力のファイルハンドルを代入 ファイルハンドルの二重化を行う (これで、標準入力から入力すると、キーボードではなくてファイルから読まれる。) プログラムを実行する 入力用ファイルをクローズする
パイプ 標準出力のファイルハンドルを二重化し、保管する テンポラリファイルを作成し、そのファイルハンドルをBXに代入 CXに標準出力のファイルハンドルを代入 ファイルハンドルの二重化を行う (これで、標準出力に出力をすると、ディスプレイではなくてテンポラリファイルに書かれる。) プログラムを実行する 保管した標準出力のファイルハンドルをBXに代入する CXに標準出力のファイルハンドルを代入 ファイルハンドルの二重化を行う (これで、標準出力が元の状態に戻った) 標準入力のファイルハンドルを二重化し、保管する テンポラリファイルのファイルハンドルをBXに代入 標準入力のファイルハンドルをCXに代入 ファイルハンドルの二重化を行う (これで、標準入力から入力すると、キーボードではなくてファイルから読まれる。) プログラムを実行する 保管した標準入力のファイルハンドルをBXに代入する CXに標準入力のファイルハンドルを代入 ファイルハンドルの二重化を行う (これで、標準入力が元の状態に戻った) テンポラリファイルをクローズし、削除する