演習課題「論理右シフトする」
右の環境には、CASLで、メモリからレジストに値を読み込むプログラムが作成してあります。 このファイルを修正して、以下の処理をしてください。
#1234を3ビット分、論理右シフトする
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、下記のコマンドを実行してください。
~$ pycasl logic.cas
~$ pycomet -d logic.com
~$ s
~$ s
~$ s
~$ s
#09:シフト演算命令 - その2
COMETⅡのシフト演算命令について学習します。さきほどの続きとして、論理シフト命令について理解しましょう。
$ pycasl logic.cas
$ pycomet -d logic.com
SLL SLL r, adr [, x]
- 符号ビットを含めて、ビットパターンを左方向に移動
- 右側の空いたビットは「0」になる
- 左側のはみ出したビットは削除される
- 最後にはみ出したビットをOFにセット
- シフトする量を、実効アドレスで指定する
SLL GR0, 1 ; 1ビット左に論理シフト
SLL GR0, 2 ; 2ビット左に論理シフト
SRL SRL r, adr [, x]
- 符号ビットを含めて、ビットパターンを右方向に移動
- 左側の空いたビットは「0」になる
- 右側のはみ出したビットは削除される
- 最後にはみ出したビットをOFにセット
- シフトする量を、実効アドレスで指定する
SRL GR0, 1 ; 1ビット右に論理シフト
SRL GR0, 2 ; 2ビット右に論理シフト
何もしない
- 実際のCPUでは、命令1個分の時間を消費する
- 実行時のタイミング調整や、ダミー命令に利用する
AAAA 1010 1010 1010 1010
SLL 5554 0101 0101 0101 0100
SRL 2AAA 0010 1010 1010 1010
NOP(NOOP)とは - IT用語辞典 e-Words
http://e-words.jp/w/NOP.html
CASLⅡでスーパーバイザーコールやNOP命令とは?
https://arcanum.work/contents?id=20
CASLIIアセンブラ & シミュレータ PyCASL2 & PyCOMET2
http://www.image.med.osaka-u.ac.jp/member/nakamoto/pycasl2/index.html
CASL - Wikipedia
https://ja.wikipedia.org/wiki/CASL
アセンブラ言語CASLⅡの仕様
https://www.chiba-fjb.ac.jp/fjb_labo/casl/CASL2spec.html#2-3
システムCOMETⅡの仕様
https://www.chiba-fjb.ac.jp/fjb_labo/casl/COMET2spec.html
CPU - コンピュータの基礎知識 | ++C++; // 未確認飛行 C
https://ufcpp.net/study/computer/CPU.html