実験の目的

■アセンブリ言語プログラミング

パーソナルコンピュータやワークステーションをはじめ、さまざまな機器で使用されているマイクロプロセッサは、機械命令を組み合わせた機械語によってプログラムが記述されている。 本実験では、機械命令を人間に分かりやすい記号に1対1に対応させたアセンブリ命令と、アセンブリ命令を組み合わせるアセンブリ言語プログラミングを学習する。

機械語(アセンブリ言語)はプロセッサの種類によって異なるものであるが、一般的なプロセッサではその概念はほぼ同じであり、1種類のプロセッサのアセンブリ言語プログラミングに習熟すれば、その他の種類のプロセッサのアセンブリ言語プログラミングを修得することは容易である。

また、C言語のように高級プログラミング言語でありながらプログラム中の文や式の記述がプロセッサの処理と密接な関係があるプログラミング言語では、人間が高級プログラミング言語でプログラムを作成する際にアセンブリ言語を意識することで効率のよいプログラムを開発できることがある。そのためにも、アセンブリ言語プログラミングを修得し、マイクロプロセッサが実行する機械命令(アセンブリ命令)とその処理内容の知識を持つことは意義が大きい。

■数値演算処理

乗算、除算といった数値演算をマイクロプロセッサに行わせるためには、数値演算を行うプログラムが必要である(マイクロプロセッサの種類によっては、乗算、除算の機械命令を有するものもある)。
マイクロプロセッサによって数値演算を行うアセンブリ言語プログラムの作成を行い、数値演算手法を修得する。

■命令セット

マイクロプロセッサが実行できる機械命令(アセンブリ命令)の種類の集合を命令セット(instruction set)と呼ぶ。マイクロプロセッサが実行するプログラムは多様であるが、平均的にプログラム実行効率が最も高くなるように想定して命令セットが考えられている。

本実験では、あらかじめ用意されている基本命令セットに自由に命令を追加したり、あるいは命令セットを1から作ることができる。処理内容に合わせた最適な命令セットを考案し、所要の処理を最も短い時間で実行するにはどのようにすべきか、考察および実験を行う。

命令セットを考案するには、マイクロプロセッサが機械命令を実行する際に内部で行う処理に対する正しい理解が不可欠である。本実験により、マイクロプロセッサの内部の動作の理解を深める。


実験の内容

仮想ソフトマイクロプロセッサELC-1のシミュレータを用いて、アセンブリ言語プログラミングを学習する。ソフトマイクロプロセッサとは、命令セットを変更することが可能なマイクロプロセッサを意味する造語である。
また、処理内容に最適なELC-1の命令セットを考案し、その最適化の効果を調べる。