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

あなたは

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

アセンブラ入門内検索

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


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



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

トップ-> アセンブラ入門:2章.MOV命令-> 2-5.データ定義疑似命令

←前ページへ :  トップへ :  練習問題へ→



2-5.データ定義疑似命令

  前ページで「byte」という疑似命令について紹介しました。疑似命令とはCPUに命令するのではなくアセンブラ(コンパイラ)への命令を言います。例えばmov命令は、それがマシン語に置き換えられたものをCPUが実行するので、CPUへの命令といえます。それに対して、「CODE SEGMENT」はセグメントの名前を"CODE"にしますというのをCPUではなくコンパイラであるアセンブラに伝えていますし、「.186」というのも80186以降のCPUを前提としているということをアセンブラに伝えています。このようにアセンブラに伝えるものを疑似命令といいます。

  話がそれましたが、バイト型のデータを定義するためには「DB」という疑似命令を使います。もちろん前ページで紹介した「byte」でも良いのですが、「DB」を使う場合が多いようです。
DATA	DB	'A'

のように、
ラベル名	DB	実際のデータ


というように使います。シングルクォーテーションで囲ったり、カンマで区切ることで複数のデータを定義することもできます。また、ラベル名は省略することもできます。実際のデータが不定値で良い場合は「?」を使います。
MESSAGE	DB	'This is a pen!'
COUNT	DB	5, 10, 30
     	DB	?,  ?,  ?

  不定値の領域はできるだけ最後尾に持って行くと、ファイルサイズが小さくなる場合もあります。

  バイト型以外にも同じような疑似命令が用意されています。
1バイト型 byte DB
1ワード型(2バイト型) word DW
2ワード型(4バイト型) dword DD
↓以下は、古いアセンブラではサポートしていない場合がある。
3ワード型(6バイト型) fword  
4ワード型(8バイト型) qword DQ
5ワード型(10バイト型) tbyte DT

  また、大きな領域の場合で、例えばすべて0にしておきたいなどの場合は、「DUP」疑似命令を使います。
繰り返し数	DUP(初期値)

例えば、100バイト分のデータエリアを用意し、その中身を0とする場合は以下のようになります。
DATA_AREA  	DB	100 DUP(0)

  初期値が不定値でも良い場合はは上述したように「?」を使うことができます。


  アセンブラでは他にも多くの疑似命令を供えていますが、当サイトでは説明を割愛しています。


←前ページへ :  トップへ :  練習問題へ→