アセンブラ仕様
仮想コンピュータ アセンブラ仕様
命令はすべて 1 語長
(8 ビット)
。 上位 4 ビットは命令コード、 下位 4 ビットはオペランド
(ただし、 オペランドがない命令は 8 ビット全てが命令コード)
です。
使用できる文字は英数字と記号“ : ; , % $ # ” および空白文字
(space)
と タブ
(tab)
です。
‘;’の後にコメントを書くことができます。 どんな文字でも使えますが、 日本語は表示が化けます。
分岐命令以外のオペランド “0000” はインデックスアドレッシングモードを意味しているため、 原則として 0 番地のデータは参照できません
(インデックスアドレッシング (IX) を指定すると、 オペランドは “0000” になります。)
0 番地のメモリにアクセスするには、 インデックスレジスタを “0000” にした上でインデックスアドレッシングを使用します。
オペランドは 10 進数、 16 進数、 2 進数のいずれでも記述できます。 2 進数は 4 桁で表記します
(0000〜1111)
。 ソースプログラム上で明示したい場合は、 識別子として 10 進数に“%”、 16 進数に“$”、 2進数に“#” をつけることができます。
(例: 13、D、1101、%13、$D、#1101 はすべて同じ数字。)
疑似命令 STORE のアドレスとデータは、 識別子を省略すると 10 進数と見なされます。 10 進数であることを明示する、 あるいは 16 進数、 2 進数を使用するには、 識別子 “%”、“$”、“#” を使用します。
分岐命令の飛び先番地を指定するために任意のラベルが使用できます。 末尾に‘ : ’ をつけるとラベルとして認識されます。
例: LOOP: READ 13
JEZ LOOP
これで、 READ した
(13 番地の)
データが 0 であれば READ を繰り返すプログラムになります 。
ラベル、 命令語、 オペランドの間には、 任意の数の空白文字
(space)
、 タブ
(tab)
が使用できます。
疑似命令 STORE の番地とデータの間は‘,’
(comma)
で区切ります。
関連事項:
仮想コンピュータ
仮想コンピュータの使い方
命令セット
命令
プログラム例>
資料 (PDF)