next up previous
: [SPIM] R 形式 (レジスタ・アドレシング) : マイクロプロセッサ演習 : マイクロプロセッサ演習


MIPS のアセンブリ言語の機械語への翻訳

今回の演習では、MIPS のアセンブリ言語の機械語への翻訳を取り扱う。 もちろん、機械語そのものを覚えるのが目的ではなく、 コンピュータがハードウェアとして働く仕組みを理解するための 足掛かりとすることを目指している。 今回の演習の内容は、教科書の第五章 (データパスと制御) を理解するためには 必須と言えるだろう。

今までの演習で、MIPS CPU 上で動作するソフトウェアが add, lw, sw などの命令 (instruction) の系列として実現されることをみて来た。 これらの命令はアセンブラによって機械語に翻訳される。 機械語とは、命令を数値で表現したものである。

MIPS R2000 CPU においては、一命令は全て 32 ビットで表現される。 今まで見た通り、MIPS においてはレジスタやデータの 1 語のデータ長 は 32 ビット (4 バイト) であったから、1 命令は全て 1 語で表されることになる。 さらにメモリアドレスも 32 ビットで表現されている。 このように MIPS R2000 CPU は非常に規則的な命令体系および構造をしているのが 特徴である。

一方、Intel の 80x86 系 CPU はその歴史背景から 非常に複雑な構造をしている。例えばレジスタのサイズが 16 ビットのものとと 32 ビットのものが混在している、 などである。

とはいえ、MIPS R2000 CPU の構造を理解することは Intel や PowerPC 等、他の CPU を理解する助けになるだろう。


平成16年11月29日