アセンブラ入門

### 基礎用語
アセンブラは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コンパイラが機械語に変換
アセンブラソースプログラムが機械語に変換