演習課題「レジスタ間で転送」
右の環境には、CASLでメモリからレジスタにデータを読み込むプログラムを作成してあります。このファイルを修正して、以下の動作をするように修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
GR0の値をGR2に転送する
※ 採点前に下記のコマンドを実行してください。
$ pycasl calc.cas
$ pycomet -d calc.com
$ s
$ s
$ s
#01:仕様書の読み方を知っておこう
メモリから値をロードするLD命令を例にして、CASLⅡとCOMETⅡの仕様書の読み方について学習します。
アセンブリ言語の書き方は、アセンブラであるCASLⅡの仕様書に書いてあります。
また、アセンブラ命令やマクロ命令についても載っています。アセンブラ言語CASLⅡの仕様
言語の仕様
1. CASLⅡは、COMETⅡのためのアセンブラ言語である。
2. プログラムは、命令行および注釈行からなる。
3. 1命令は1命令行で記述し、次の行へ継続できない。
4. 命令行およびコメント行は、次に示す記述の形式で、行の1文字目から記述する。
LD命令は、2つの機能があるのでオペランドの書き方が2つあります。命令 書き方(命令コード、オペランド) 説明
ロード: LoaD LD r1,r2 r1 ← (r2)
LD r,adr[,x] r ← (実効アドレス)
r,r1,r2: いずれもGRを示す。指定できるGRは、GR0~GR7
adr: アドレスを示す。指定できる値の範囲は0~65535
x: 指標として用いるGRを示す。指定できるGRはGR1~GR7
[ ]: [ ]内の指定は省略できることを示す。
( ): ( )内のレジスタ又はアドレスに格納されている内容を示す。
実効アドレス: adrとxの内容との論理加算値又はその値が示す番地。
←: 演算結果を、左辺のレジスタまたはアドレスに格納することを示す。
; レジスタ間で転送
CALC START
LD GR0, A
LD GR1, GR0
RET
A DC 03
B DC 02
ANS DS 01
END
仕様書とは - IT用語辞典 e-Words
http://e-words.jp/w/%E4%BB%95%E6%A7%98%E6%9B%B8.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