LoginSignup
0
1

More than 3 years have passed since last update.

学習メモ / アセンブラ言語 CASLⅡ

Last updated at Posted at 2020-03-20

CASLⅡ

CASLⅡは基本情報技術者試験向けに開発されたアセンブラ言語。
今回はCASLⅡについての内容をまとめます。

前回、学習メモ / アセンブラ言語の基礎

参考文献:
プログラミング入門 CASL2―情報処理技術者テキスト

その他各種サイト

命令

r:レジスタ
adr:値アドレス

例:
LAD  r, adr, x
rにadr+x番地の値を格納する。

命令コード  オペランド  命令 説明  英語 
NOP no operation
LD r, adr, x r ← adr load
ST r, adr, x adr ← r store
LAD r, adr, x r ← adr load address
LD   r1, r2 r1 ← r2 load
ADDA   r, adr, x 算術加算 r ← r + 実行アドレス add arithmetic
SUBA   r, adr, x 算術減算 r ← r - 実行アドレス subtract arithmetic
ADDL   r, adr, x 論理加算 r ← r + 実行アドレス add logical
SUBL   r, adr, x 論理減算 r ← r - 実行アドレス subtract logical
ADDA   r1, r2 r ← r1 + r2 add logical
SUBA   r1, r2 r ← r1 - r2 subtract logical
ADDL   r1, r2 r ← r1 + r2 add logical
SUBL   r1, r2 r ← r1 - r2 subtract logical
AND   r, adr, x 論理積 r ← r AND 実行アドレス and
OR   r, adr, x 論理和 r1 ← r1 OR r2 or
XOR   r, adr, x 排他的論理和 r ← r XOR 実行アドレス exclusive or
AND   r1, r2 r ← r1 AND r2 and
OR   r1, r2 r1 ← r1 OR r2 or
XOR   r1, r2 r1 ← r1 XOR r2 exclusive or
CPA   r, adr, x 算術比較 下記フラグレジスタを参照 compare arithmetic
CPL   r, adr, x 論理比較 下記フラグレジスタを参照 compare logical
CPA   r1, r2 下記フラグレジスタを参照 compare arithmetic
CPL   r1, r2 下記フラグレジスタを参照 compare logical
SLA   r, adr, x 算術左シフト adrで指定した分だけ左シフト shift left arithmetic
SRA   r, adr, x 算術右シフト adrで指定した分だけ右シフト shift right arithmetic
SLL   r, adr, x 論理左シフト adrで指定した分だけ左シフト shift left logical
SRL   r, adr, x 論理右シフト adrで指定した分だけ右シフト shift right logical
JMI   adr, x マイナスの場合分岐 jump on minus
JNZ   adr, x ゼロでない場合分岐 jump on non zero
JZE   adr, x ゼロの場合分岐 jump on zero
JUMP   adr, x 無条件で分岐 unconditional jump
JPL   adr, x プラスの場合分岐 jump on plus
JOV   adr, x オーバーフローの場合分岐 jump on overflow
PUSH   adr, x スタックに実行アドレスを積む push
POP   r スタックの値を取り出す pop
CALL   adr, x call subroutine
RET   return from subroutine

フラグレジスタ(FR)

FRの値は、命令の演算結果の値に応じて設定される。
以下3種類ある。

オーバーフローフラグ(OF)

オーバーフローが発生すると1が設定される。

サインフラグ(SF)

演算結果の符号ビットの値が設定される。
正の値:0
負の値:1

ゼロフラグ(ZF)

演算結果がゼロの場合1が設定される。

比較演算の結果

  SF  ZF 
r1 > r2 0 0
r1 = r2 0 1 
r1 < r2 1 0
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1