トップ->アセンブラ入門

あなたは

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

アセンブラ入門内検索

目次
アセンブラトップ
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の世界〜


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



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

トップ-> アセンブラ入門:3章.算術演算-> 3-4.フラグ

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



3-4.フラグ

  フラグはCPUの状態などをビット単位で表しています。実際はフラグレジスタ という16bitで管理されているが、実際に使われているのは9つ分、すなわち9bit 分で、残りは使われていない。

CF(キャリーフラグ)
算術演算で繰り上がり(加算)、桁借り(減算)した場合などに「1」しなかった場合は「0」 になる。そのほか、「INT 21h」のシステムコールが正常に処理できなかった場合に「1」に、 正常に処理されれば「0」になることから、サブルーチンを作った際に、エラーフラグとして 用いる人も多い。

PF(パリティーフラグ)
演算結果の最下位バイト(例えばALやBL)を2進数で見たときに、「1」の数が、 偶数なら「1」、奇数なら「0」になる。ほとんど使われないフラグ。

AF(補助フラグ)
BCD演算に使用される詳しくは省略する

ZF(ゼロフラグ)
演算結果が0になった場合に「1」、それ以外なら「0」になる。 よく使うフラグの1つ。

SF(サインフラグ)
サインとは日本語に訳すと「符号」で、演算結果がマイナスになった場合に 「1」になる。アセンブラでマイナスとは、最上位ビットが「1」の時に、マイナス と見なし、「0」の時にプラスト見なす。したがって、このフラグは演算結果の 最上位ビットがそのまま反映されている。詳しくは後で述べる。

IF(割り込み許可フラグ)
ハードウエア割り込みを許可するときは「1」、許可したくない場合や割り込み処理中は 「0」になる。詳しくは10章参照

DF(ディレクションフラグ)
ストリング命令で使用します。詳しくは7章参照

OF(オーバーフローフラグ)
例えば、8bitレジスタALが7Fh(=127)で、さらに1を足すと、80h(=-128)になる。 これは8bitで表せる数は-128〜+127までであり、その範囲を超えた計算であるからで、 このような範囲を超えた計算を行った場合に「1」になる。符号付き演算で オーバーフローした際に「1」になる。詳しくは後で述べる。

  フラグは条件分岐で頻繁に使います。
  80286以上ではTSF(タスクスイッチフラグ)などが拡張されています。


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