アセンブラ、シミュレータを使ってみる

C言語が動くまでの流れ

 C言語ソースコードを作成
   ↓
 翻訳する(C言語からアセンブラが生成され、それをマシン語に変換する)
   ↓
 メモリへロードして、実行する。

簡単なC言語のプログラムに相当するアセンブラを作成し、実行してみる

次のようなC言語のプログラムがどうのようにアセンブラに変換されるか考えます。

short int X = 3;
short int Y;
main()
{
    Y = X + 2;
}

アセンブラ コードの書き方

上記コードに対応するアセンブラのコードは次のように記述します。

それぞれの欄は、Tabキーによるインデントで、揃えて読みやすくします。
一般にアセンブラは、C言語のようなフリーフォーマットの言語ではありません。
1行にアセンブラの1命令しか書けません。また記述する桁によって意味が変わってきます。
先頭桁に書いたものはラベルと判断されます、 アセンブラの仕様によりますが、CASLでは先頭の文字は英大文字で、以降は数字を含んでよい仕様です。 (レジスタなどの予約語はつかえません。)

アセンブラを実際に実行してみる。

次は上記コードを実際に入力したものですが、間違いが1箇所あります。(直してみましょう。)
←エラー指摘などの表示用ボックス

[アセンブル]ボタンで、ソースプログラムを機械語に変換します。
ここでエラーがあると、エラー指摘を行うエラー指摘などの表示用ボックスに指摘されます。
このボックス内のエラー番号の行をクリックすると、正しい指摘とは限りませんが、 ソースのエラーに関連する項目を選択状態にします。
上記コードでは、LDDの箇所が間違っています。(このような命令はありません。)
これを、正しいLD命令に変更してください。

わからない場合は、クリック

分からない場合は、上の[答え]のボタンで確認できます。
正しく作成できれば、[シミュレータ]ボタンが出現します。これで動作を確認してください。
以下にシミュレータの簡単な使い方を示します。

なお、→ここの右クリックで、ローカルで動くアセンブラ・シミュレーターをダウンロードできます。
これを使うと、ファイルをディスクへ保存できます。
ダウンロードするファイルは拡張子を.jarに変更して使ってください。 (Javaの実行可能ファイルなので、Javaのランタイムが正しくインストールされていないと動きません。)

 なお、COMET2において、 その命令を記述するアセンブラはCASL?として定義されていますが、マシン語そのものは得に定義されていません。
よってこのシミュレータで使っているマシン語は、私が勝手に決めたマシン語と言うことになります。