コンピュータとソフトの仕組みを徹底的に理解 しようとおもったら, CPU を直接制御する言語である 機械語を学ぶことはさけてとおれない. JavaScript で書かれたプログラム等も最終的には 機械語に翻訳されて実行される. Windows 98, ME では 8086 CPU の機械語の機能を比較的簡単にいろいろとためすことができる. 8086 CPU というのは われわれが普段利用してる PC で使用している Pentium CPU の先祖の CPU である. Pentium CPU は, 8086 のふりをすることが可能である.
MSDOS プロンプトから起動した debug コマンドで 8086 の機械語の入力, 実行などが可能である.
機械語の比較的よみやすい参考書として, 村瀬, ``はじめての 8086'' をすすめる. 興味のある人は, debug コマンドで実際にためしながら, この本にトライしてみるといいだろう.
機械語を学ぶときには, ``機械語というのは単なるバイトの列であり, それを CPU は順に読み込み, 解釈実行する'' ということを頭につねにおいておくのが肝要である. しかしさすがにバイト列をそのまま扱うのでは, 機械語の入力等が大変なので, 普通は ニーモニックという記号が用意されていて, この記号列を用いて, 機械語を入力する. たとえば 8086 CPU では,
この節の最後に機械語で周辺 LSI を制御する簡単な例をあげておこう. 計算機の仕組みについてそれなりのイメージをもつのには, とてもよい例である.
上級者向け参考: なお, この例は Windows NT, Windows 2000 では, 実行できない. OS が周辺 LSI を直接制御するのを 禁止しているからである. Linux などの Free の PC unix では, システムコール ioperm で I/O ポートへのアクセス権限を得てから, C 言語の函数 outb, inb を用いて同様のことをためすことが 可能である.
IN AL,61 OR AL,03 OUT 61,AL
MOV AL,00 OUT 61,AL