演習課題「論理積を求める」
右の環境には、CASLで、メモリからレジストに値を読み込むプログラムが作成してあります。 このファイルを修正して、以下の計算をしてください。
論理積
\#1111 and \#2222
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、下記のコマンドを実行してください。
~$ pycasl logic.cas
~$ pycomet -d logic.com
~$ s
~$ s
~$ s
~$ s
演習課題「論理和を求める」
右の環境には、CASLで、メモリからレジストに値を読み込むプログラムが作成してあります。 このファイルを修正して、以下の計算をしてください。
論理和
\#1111 OR \#2222
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、下記のコマンドを実行してください。
~$ pycasl logic.cas
~$ pycomet -d logic.com
~$ s
~$ s
~$ s
~$ s
#06:AND命令とOR命令を使ってみよう
COMETⅡの論理演算命令について学習します。先ほどに続いて、AND命令とOR命令を実際に使ってみます。
$ pycasl logic.cas
$ pycomet -d logic.com
- 16ビットのAND演算
- 演算結果に合わせてサインフラグとゼロフラグが変化する
オーバーフローフラグは「0」になる
- レジスタ間と、レジスタ・メモリ間で演算できるAND AND r1, r2 r1 ← (r1) AND (r2)
r, adr [, x] r ← (r) AND (実効アドレス)
- 16ビットのOR演算
- 演算結果に合わせてサインフラグとゼロフラグが変化する
オーバーフローフラグは「0」になる
- レジスタ間と、レジスタ・メモリ間で演算できるOR OR r1, r2 r1 ← (r1) OR (r2)
r, adr [, x] r ← (r) OR (実効アドレス)
- 組み込み機器で、特定のメモリアドレスに、スイッチやセンサーを接続
- そのオン(1)/オフ(0)を判別したい
- 判別したいビットだけ「1」、残りを「0」にして、ANDで演算する
4ビット目のオン/オフを判別したい ---- ---- ---X ----
AND 0000 0000 0001 0000
------------------------
0000 0000 000X 0000
4ビット目は、そのまま。残りのビットは、すべて「0」になる。
ゼロフラグで分岐する。
- 組み込み機器で、特定のメモリアドレスに、LEDや出力装置を接続
- そのビットをオフ(0)に設定したい
- 設定したいビットだけ「0」、残りを「1」にして、ANDで演算する
4ビット目のオン/オフを判別したい XXXX XXXX XXX- XXXX
AND 1111 1111 1110 1111
------------------------
XXXX XXXX XXX0 XXXX
4ビット目は「0」になり、残りのビット「X」はそのまま
- 組み込み機器で、特定のメモリアドレスに、LEDや出力装置を接続
- そのビットをオン(1)に設定したい
- 設定したいビットだけ「1」、残りを「0」にして、ORで演算する
4ビット目のオン/オフを判別したい XXXX XXXX XXX- XXXX
OR 0000 0000 0001 0000
------------------------
XXXX XXXX XXX1 XXXX
4ビット目は「1」になり、残りのビット「X」はそのまま
【5分で覚えるIT基礎の基礎】あなたは論理演算がわかりますか? 第2回 | 日経クロステック(xTECH)
https://xtech.nikkei.com/it/members/ITPro/ITBASIC/20020805/1/
マスク (情報工学) - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B9%E3%82%AF_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6)
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