まつたろうの歩み

PythonやCの勉強中に「指し示す」いう表現がありました。それを知りたくて今はコンピュータシステムを勉強しています。

コンピュータシステムの理論と実装。第4章機械語が終わりました。

HACKコンピュータの機械語アセンブリ)は独特です。CASL2とは表現の仕方が、かなり違います。できるのか心配していましたが、どうにか終わりました。今回もグーグル翻訳に助けて頂きました。

f:id:kmatsutaro:20220409163625j:plain

翻訳中

本誌の他に重要な資料はレクチャーのPDF資料です。153ページもあるので、翻訳が大変でした。このページには、例2が記載されています。

f:id:kmatsutaro:20220409163852j:plain

4章のレクチャーP70

レクチャーのはじめでは、基本的な命令の書式が説明してあります。この他、2数のうち大きい数を選んだり、2数の合計を求めたり、100までの数の合計をイテレートさせ計算させたり、ポインターでの配列処理などありました。かなり参考になりました。

f:id:kmatsutaro:20220409164505j:plain

100までの数の合計

デモのビデオも参考になります。下の写真はデモを止めて見ながら、エディターに入力しCPUエミュレータで動作確認しているところです。

f:id:kmatsutaro:20220409164740j:plain

デモを見ながら学習中

デモには長方形を描く、Rectangle.asmがありました。デモを止めコードを書き写し、試してみました。プロジェクトのFillに役立ちました。Fillのコードを書きましたが動作が遅いので、何かあるのかQ&Aで調べました。

f:id:kmatsutaro:20220409165343j:plain

Q&Aから

やり取りの中から、NonAnimationで表示させると良いことがわかりました。

f:id:kmatsutaro:20220410064505j:plain

ノンアニメーションで表示すると早いです

無事にFillのプロジェクトが成功しました。先生は18行のコードでかけるように述べておられましたが、私は70行を越えました。しかし動作したので、良しとしました。

f:id:kmatsutaro:20220409165725j:plain

Fill成功

掛け算のMultも終わりました。掛け算といっても、繰り返し加算するだけです。

f:id:kmatsutaro:20220409165841j:plain

掛け算もできました

ビットマップエディターも使ってみました。

f:id:kmatsutaro:20220409170030j:plain

ビットマップエディター

自由課題では、このビットマップをキーボードで動かすことを考えました。上の図でもかなりピクセル数があります。1ピクセルずつ全てを動かすには、大変な作業が必要そうなので1本のラインを動かすことにしました。

f:id:kmatsutaro:20220410072043j:plain

自己作成プログラム

ビットマップが左上に表示されるので、右か下方向しかありません。右矢印キーで右に動くようになりましたが、メモリに残っている前のデータも表示されました。この後、どうにか前のデータを消す(M=0を入力)ことができるようになりました。一応1本のラインが右方向と下方向に動くようになりましたが、ゲームのようには自在には動きません。1ビットずつ右にシフトするとか、32ワードずつ下にシフトするとか方法がありそうですが今はわかりません。今後の課題です。

 

編集後記

ロシアはまだ侵略戦争をやめません。国連もがんばっていますが、戦争を始めるわけにはいかないので苦慮しています。ロシアでは報道も規制され、正しい情報を国民は知らされていません。戦前の日本のようです。正しい報道の大切さをあらためて感じます。狂った指導者がいても、それを浄化できるような国づくりをしないといけません。ロシアの指導部や戦った兵士が、「この戦争は間違っている」と止めさせるしかありません。ロシアの人たちは頑張ってください。