予備知識
はじめ
これらの知識は,アセンブリ言語に直接関与しないが,これからのアセンブリ言語への理解を促進させてくれると考えている.ここで,コンピュータの基礎的な知識を身につけておきたい.
コンピュータ
メモリ
メモリには,ROM(Read Only Memory)とRAM(Random Access Memory)の2つがある.ROMは読み込み専用のメモリであり,保持データの不揮発性を有する.一方でRAMは,CPUが自由にデータを書き込みと読み込みが可能であり,揮発性であるためコンピュータ起動時のみデータを保持できる.
これらの性質の使い分けとして,ROM領域にはBIOS等のコンピュータやOSの起動に関するプログラムが書き込まれている.一方で,RAM領域には応用アプリケーションで利用されるデータに関して活用される.
アセンブリ言語とアセンブラ
ビットとバイト
レジスタ
アセンブリ言語の記述法
//Intel Style
mov ax, 10 /*AXレジスタに10を代入する(転送する)*/
この命令において,コンピュータの動作を司令しているのが「mov」.movの部分をOP(Operation)コードまたはニーモニックと呼ぶ.それに続く「ax」と「10」はオペランド(oprand)と呼ばれ,10をソースオペランド,axをディスティネーションオペランドという.これらのオペランドはニーモニックが操作する対象を定義する役割をしている.ほとんどのアセンブラでは上記のIntel形式を採用しているが,まれにAT&T形式を採用していることもある.その場合,ソースオペランドとディスティネーションオペランドの定義する順序が逆になる.