### 基礎用語
アセンブラは1行1件で記述され、最大で4つのフィールドを持つ
コメント、オペランド、ニーモニック、名前
ニーモニックは、CPU命令と、ディレクティブ(アセンブラに対する支持)がある。
### ディレクティブ
mov ax, 1234H
cpu命令、レジスタ名は小文字
ディレクティブやラベルは大文字
B 2進数、O,Q 8進数、D 10進数、H 16進数
16進数は0を先頭につける
MSG1 DB ‘ABCDE’
@@: ラベル
@B 直近の先頭行側の@@ラベル参照
@F 直近の最終行側の@@ラベル参照
システムマクロ
ローカルラベル機能がある
### 機械語
CPUの命令のことを機械語(マシン語)という
メモリから1バイトの命令コードをCPU内の実行ユニット部が読み込むと命令デコーダによって解析され、命令タイプが決定する
e.g. 01001000 という命令が来たら 8086CPUでは AXレジスタの内容を1だけ減じる という仕事をする
2進数は覚えにくいので、16進数で4ビットごとに1桁として数え、0~Fで表現する
16ビットは2バイト
48という16進数の数字からAXレジスタから1減じる という意味を読み取ることができないので、機械語と1対1に対応しながら表意的な名前を与える方法が考え出され、それがアセンブラというプログラミング言語
dec ax という記述
mov ax, MYDT1 -> A1 0101
add ax,MYDT2 -> 03 06 0103
mov MYDT3, ax -> A3 0105
MYDT1 DW 10
MYDT2 DW 20
MYDT3 DW 0
より自然な表記が可能となり、C, C++, Javaなどの高級言語が生まれた
Cの場合は、Cコンパイラが機械語に変換
アセンブラソースプログラムが機械語に変換