メタ坊のブロマガ

今ごろマイコン2(命令コード表読み解き。レジスタに値を入力して動かす命令)

2018/04/04 19:00 投稿

  • タグ:
  • マイコン
・以下は実在するとあるマイコンの命令コード一覧表。の半分。製品名はそのうち。
 16進数で表現した命令コードで0(10進数で0)からF(10進数で15)まで、16の命令があるはずなんだけど、なぜかEだけ抜けているので全部で15の命令がある。
 これはそうなっているので理由はよくわからないけど仕方がない。あとで残り半分を見ると何かわかるかもしれない。


 この表に書かれている命令が、どんな操作をするのか、ということをちょっと自分なりに
理解できたらいいな、と思って読み解いてみる。

0 KA は、 働きがK→A、つまりキーボードで押された数字(0~Fの16通り)が
Aレジスタに入るんだから、こんな感じかな。
ポート1の先にはキーボードがある。今のパソコンみたいに豪華じゃなくて、0からFまでの16種類のキーが入力できるようになっている。
 キーボードからの入力は必ずAレジスタに入るようになっているみたいで、他のレジスタにキーボードから入力する命令は無い。
 





 表にはフラグというものも書かれているけど、これは図では省略されている1ビットの情報を(つまり0か1かを)格納する記憶領域みたいのがあって、これでプログラムが動いた事によってとか、外部からの入力によってとか、CPU内の状態が変化すると変わったり変わらなかったりする。その情報をプログラムで使うことがあるみたい。
 ここでは外部からの入力がある、つまり数字にかかわらずキーが押されたら0で、何も外部から入力がない状態では1ということみたい。押したキーを離した場合は1に戻るのだと思うけど、マイコン屋さんの常識だからか特に明記されてないので自信がない。

1 AO は前回の例題でも出てきたけど、働きがAr→Op、つまりAレジスタの値
   (0~Fのどれかが入っている)をディスプレイに表示しなさい、ということで
    こんな感じかな。

 ポート2、3の両方を経由してデータが外に出て行くみたいに書いてある。
 Opというのは前回も書いたけどオーポートという意味らしいけど
資料にははっきり書いてない。





 ディスプレイと言ったけど、このマイコンでディスプレイに該当するのはいわゆる
7セグメント数字LED。昔は電卓なんかにも使ってたけど今の人は知らないか。映画「プレデター」でプレデターが腕につけていて、自爆するときに・・・なんて言うともっとわからなくなるか。
 
 こんなやつです。7つの発光部分を組み合わせたLED。どこを光らせるかによって0からFまでこれで表わせちゃう。豆電球を7つ、つけたり消したりすると思えば線はプラス7本とマイナス1本が必要ということで、おそらく4ビットのポートを2つ、8ビット分必要とするんだろうと思う。セグメントというのはいろいろと意味が広い言葉のようだが
http://wa3.i-3-i.info/word12125.html
 ここでは「切片」「部分」「線分」などの意味をベースにして、この発光部分一つ一つをセグメントと呼ぶみたい。
https://www.marutsu.co.jp/contents/shop/marutsu/mame/50.html

2 CH(シーエッチ)は 働きが Ar⇔Br  Yr⇔Zr と書いてある。
 つまりAレジスタとBレジスタ、YレジスタとZレジスタの値を交換しなさい、ということで、両方やるみたい。片方だけというのはダメみたい。両方やるんだから順番を考えても意味がないのかもしれないけど、動作としてはABをまず入れ替えて、さらにYZを入れ替え、と
書いてある。のでこんな感じ。










3 CY(シーワイ)は 働きが Ar⇔Yr つまりAレジスタとYレジスタの値を
  互いに入れ替える。とある。のでこんな感じ。


 BレジスタとZレジスタを入れ替える命令というのは無いみたい。
 Aレジスタに入れた数字をBレジスタに持って行きたい場合はCHでできる。
 Aレジスタに入れた数字をYレジスタに持って行きたい場合はCYでできる。
 Aレジスタに入れた数字をZレジスタに持って行きたい場合は、まずCYをやって次に
 CHをやればできることになるけど、CHは同時に違うところも入れ替わっちゃうので
 面倒そうだ。ABだけとかYZだけとかBZだけ入れ替えとかあってもいいように素人は
思ってしまうけど、そうなっていないのは何か理由があるんだろうな。
 もっと先に行けば何かわかるかもしれないけど。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事