あなたは
人目のアセンブラの受講生です。 |
アセンブラ入門内検索
アセンブラトップ
0. はじめに
1. 基礎
1. レジスタとは
2. セグメントとは
2. MOV命令
1. MOV命令
2. コンパイル
3. 即値の転送
4. メモリーへの転送
5. データ定義疑似命令
6. 練習問題
3. 算術演算
1. 符号なし演算と符号付き演算
2. 足し算
3. 練習問題
4. フラグ
5. 引き算
6. かけ算
7. わり算
8. INC,DEC
4. 分岐
1. 無条件分離
2. 比較命令
3. 条件分離
4. 練習問題
5. ループ
6. サブルーチン
7. スタックとは
8. PUSH,POP
9. 練習問題
5. 論理演算
1. AND命令
2. OR命令
3. XOR命令
4. NOT命令
5. NEG命令
6. TEST命令
7. 練習問題
6. シフト演算
1. シフト
2. ローテート
3. 練習問題1
4. 練習問題2
7. ストリング命令
1. ストリング命令とは
2. MOVS?
3. REP
4. DFの設定
5. LODS?
6. STOS?
7. SCAS?
8. CMPS?
9 .練習問題
8. 入出力
1. 概要
2. IN命令
3. OUT命令
4. INS,OUTS命令
9. その他
1. LEA
2. XCHG
3. NOP
10. 割り込み
1. 割り込みとは
2. ソフトウェア割り込み
3. ハードウェア割り込み
4. 割り込みベクター
5. 割り込み処理の作り方
6. 練習問題
11. レジスタの型変換(キャスト)
12. 卒業試験
1. 卒業試験
2. 画像データの格納形式
3. インラインアセンブラ
4. ネガポジ反転
5. 明るくする、暗くする
6. グレースケール
7. 二値化
8. 上下反転、左右反転
9. 4分割
10. モザイク
11. シャープ
12. ぼかし
13. エンボス
14. ディザ拡散
15. 鉛筆を置いてください
13. 終わりに
文字コード
アセンブラ 〜MS-DOSの世界〜
このページの先頭に戻る
トップページに戻る
このページの先頭に戻る
トップページに戻る
|
前ページへ :
トップへ :
次ページへ
- 10-2.ソフトウェア割り込み
ソフトウェア割り込みとは、プログラマーが故意もしくはミスにより発生させる割り込みである。
ソフトウェア割り込みは以下の3種類に分類できる。
|
プログラマーが故意に呼び出す割り込み(INTなど)
プロテクトモードでの保護違反など
0での除算など、処理を続行できないエラー
|
|
- トラップ
-
今まで何回も出てきた「INT」命令を用いてプログラムから強制的に割り込みを発生させる
ことを言う。「INT 21h」のようにOSが供給しているサービスや、常駐プログラムが行う
サービス、BIOSというハードウェアを操作するためのROMが供給するサービスなどを、
あたかもサブルーチンのように呼び出すかのように使うことができる。
- フォルト
-
プロテクトモードでは、OSがプログラムに対して、使えるメモリー領域を制限する。
この制限を越えてメモリーを使おうとするとエラーが出る。この制限を越えたメモリー
を使用しようとした時にこのフォルトが起こり、処理がプログラムから強制的に
「エラー表示をして、そのプログラムを終了させる」というOSの処理に移行する。
下図のような画面を見たことがないだろうか?「ページ違反」と書いてあるということは
許可されていないメモリーを読もうとした証拠である。
- アボート
-
「わり算」のところで少しふれたが、0で割ったり、商が大きいと
「例外」が発生すると書いた。それがこのアボートである。
下図の画面では「除算オーバーフローエラー」と書いてある。Windowsから「コマンドプロンプト」を
呼び出し、その中で0で割るプログラムを実行した場合の例である。本当のMS-DOSからこのプログラムを
実行させると、MS-DOSに処理が移行し、何も続きができなくなり、リセットするしか方法が
なくなる。
次ページのハードウェア割り込みも含めて、すべての割り込み
というのは、何らかの理由により、現在行っている処理をやめ、ほかの処理を行うルーチンに
飛ぶことである。どこに、どのように飛ぶのかは後述する。
前ページへ :
トップへ :
次ページへ
|