こんにちは、コンスキです。
CASLIIという言語をご存知ですか?
CASLⅡは基本情報処理技術者試験で使用するアセンブリ言語として存在しています。
そのため、実際のコンピュータを動かすためにある言語ではありません。
ところが今回CASLⅡを読む機会があったため、基本的な命令コードをシンプルにまとめておきます。
CASLⅡの書かれ方
CASLⅡはアセンブリ言語であるため、C言語やJavaというようなプログラミング言語と異なります。
そのため、どういう書かれ方がされているかわからないと読みづらいです。
CASLⅡでは次のような書かれ方がされています。
ラベル 命令コード オペランド1, オペランド2, …
ラベルの具体例
ラベルは他の命令から参照する時に使われる名前のようなものです。
CASLⅡは1行が1命令にになっているのですが、行にもラベルがついているとは限りません。
また、「8文字以内」、「頭文字は大文字」、「予約後以外」などの規則に従ったものであればいいため、これといって具体例はありませんが、次のようなラベルがつけられることがあります。
- DATA1
- LOOP
- FANC
- CALC
命令コードの具体例
命令コードには次のようなものがあります。
- SART
- END
- LD
- LDA
- JUMP
オペランドの具体例
オペランド1やオペランド2、その他のオペランドには次のようなものが書かれます。
- GR1
- DATA1
- 1
- =1
よく使われる命令
よく使われる3つ命令の説明をここに残しておきます。
LD
主に次のような書き方をされます。
ラベル | 命令コード | オペランド1 | オペランド2 | オペランド3 | 意味 |
---|---|---|---|---|---|
LD | GR0 | GR1 | GR1の内容をGR0に入れる |
LDA
ラベル | 命令コード | オペランド1 | オペランド2 | オペランド3 | 意味 |
---|---|---|---|---|---|
LDA | GR0 | DATA1 | DATA1の番地を実行アドレスとしてGR0に入れる | ||
LDA | GR2 | DATA1 | GR1 | DATA1の番地をGR1の内容を足したものを実行アドレスとしてGR2に入れる |
ST
ラベル | 命令コード | オペランド1 | オペランド2 | オペランド3 | 意味 |
---|---|---|---|---|---|
ST | GR0 | A | GR0の内容をメモリのA番地に入れる | ||
ST | GR2 | A | GR1 | GR0の内容をメモリのA番地にGR1の内容を足した番地に入れる |
終わりに
これからもCASLⅡの命令を自分が理解するたびにここにまとめていきます。
間違えている部分があったらコメントをいただけると嬉しいです。
コメント