演習課題「全ビットを反転する」
右の環境には、CASLで、メモリからレジストに値を読み込むプログラムが作成してあります。 このファイルを修正して、以下の処理をしてください。
#1234の全ビットを反転する
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、下記のコマンドを実行してください。
~$ pycasl logic.cas
~$ pycomet -d logic.com
~$ s
~$ s
~$ s
~$ s
演習課題「最上位ビットを反転する」
右の環境には、CASLで、メモリからレジストに値を読み込むプログラムが作成してあります。 このファイルを修正して、以下の処理をしてください。
#1234の最上位ビットだけを反転する。
そのほかのビットはそのままにする。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、下記のコマンドを実行してください。
~$ pycasl logic.cas
~$ pycomet -d logic.com
~$ s
~$ s
~$ s
~$ s
#07:排他的論理和でビットを反転しよう
COMETⅡの論理演算命令のひとつである、XOR命令について学習します。XOR命令は、排他的論理和ともいわれ、指定のビットを反転するといった用途に利用できます。
$ pycasl logic.cas
$ pycomet -d logic.com
- 16ビットのExclusive OR演算(排他的論理和)
- 演算結果に合わせてサインフラグとゼロフラグが変化する
オーバーフローフラグは「0」になる
- レジスタ間と、レジスタ・メモリ間で演算できるXOR XOR r1, r2 r1 ← (r1) XOR (r2)
r, adr [, x] r ← (r) XOR (実効アドレス)
5555 XOR FF00 = AA55 5555 0101 0101 0101 0101
FF00 1111 1111 0000 0000
-----------------------------------
XOR AA55 1010 1010 0101 0101
- 特定のビットを反転、つまり「0」→「1」、「1」→「0」に設定したい
- 設定したいビットだけ「1」、残りを「0」にして、XORで演算する
- 組み込み機器で、特定のメモリアドレスに、LEDや出力装置を接続
4ビット目・5ビット目を反転したい XXXX XXXX XX01 XXXX
XOR 0000 0000 0011 0000
------------------------
XXXX XXXX XX10 XXXX
4ビット目・5ビット目を反転して、残りのビット「X」はそのまま
XOR(排他的論理和)とは - IT用語辞典 e-Words
http://e-words.jp/w/XOR.html
【5分で覚えるIT基礎の基礎】あなたは論理演算がわかりますか? 第2回 | 日経クロステック(xTECH)
https://xtech.nikkei.com/it/members/ITPro/ITBASIC/20020805/1/
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