演習課題「ジャンプ 03」
右の環境には、CASLでメモリからレジスタにデータを読み込んで、論理加算するプログラムを作成してあります。このファイルを修正して、以下の動作をするように修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
論理加算(ADDL)命令の結果がオーバーフローしている場合、次のLAD命令を実行せず、SKIPに分岐する
※ 採点前に下記のコマンドを実行してください。
$ pycasl calc.cas
$ pycomet -d calc.com
$ s
…
#08:分岐命令を使ってみよう
分岐命令の使い方を学習します。フラグレジスタと組み合わせて、プログラムの処理を分岐させます。
命令 | 命令コード | オペランド |
---|---|---|
正分岐(Jump on PLus) | JPL | adr[,x] |
負分岐(Jump on MInus) | JMI | adr[,x] |
非ゼロ分岐(Jump on Non Zero) | JNZ | adr[,x] |
ゼロ分岐(Jump on ZEro) | JZE | adr[,x] |
オーバーフロー分岐(Jump on OVerflow) | JOV | adr[,x] |
無条件分岐(unconditional JUMP) | JUMP | adr[,x] |
; ジャンプ
JUMP START
LD GR0, A
JPL SKIP
ADDA GR0, B
SKIP RET
A DC 00
B DC 02
END
フラグとは - IT用語辞典 e-Words
http://e-words.jp/w/%E3%83%95%E3%83%A9%E3%82%B0.html
符号つき2進数
http://www.infonet.co.jp/ueyama/ip/binary/signedbin.html
符号付き整数型とは - IT用語辞典 e-Words
http://e-words.jp/w/%E7%AC%A6%E5%8F%B7%E4%BB%98%E3%81%8D%E6%95%B4%E6%95%B0%E5%9E%8B.html
CASLIIアセンブラ & シミュレータ PyCASL2 & PyCOMET2
http://www.image.med.osaka-u.ac.jp/member/nakamoto/pycasl2/index.html
CASL - Wikipedia
https://ja.wikipedia.org/wiki/CASL
アセンブラ言語CASL2の仕様
https://www.chiba-fjb.ac.jp/fjb_labo/casl/CASL2spec.html#2-3
システムCOMET2の仕様
https://www.chiba-fjb.ac.jp/fjb_labo/casl/COMET2spec.html
CPU - コンピュータの基礎知識 | ++C++; // 未確認飛行 C
https://ufcpp.net/study/computer/CPU.html