そんなこんなで第4回目です。
今回はZ80の中身がどうなっているかを勉強しました。
うん、面白いです!
噛み砕いてレポートを書きたいと思います。
CPUにはレジスタがあります。レジスタというと、あまりピンとこない方も
いると思います。
私も、あれ、なんだっけって感じでした。
CPUの中でデータを記憶しておくものです。
メモリからデータを持ってきて、CPUに一時的にいれておくものらしいです。
データは1バイト、または2バイトです。
レジスタにデータを持ってきて、計算をします。
Z80には様々なレジスタがあります。
そしてレジスタによって機能と役割が違うそうです。
まずアキュームレータという
Aレジスタ。
そして汎用レジスタ6個。
Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ
(単純にアルファベット順ではないので、ご注意を)
機能は
Aレジスタは 演算をします。
Bレジスタの内容をAレジスタに足すなど。
Aレジスタ = Aレジスタ+Bレジスタということです。
Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ
は計算ができません。
ダメ B+C
ダメ D−E
これらのレジスタは1バイトのデータ(2進数で00000000とか)を扱います。
2バイト扱いたいときはB+Cとします。(D+E、H+Lはできるのかな?よくわかりません)
ーーーーーーーーーーーーーーーーーーーーーーーーーー
Aレジスタ | F(フラグ)レジスタ
ーーーーーーーーーーーーーーーーーーーーーーーーーー
(汎用レジスタ)
ーーーーーーーーーーーーーーーーーーーーーーーーーー
Bレジスタ | Cレジスタ
ーーーーーーーーーーーーーーーーーーーーーーーーーー
Dレジスタ | Eレジスタ
ーーーーーーーーーーーーーーーーーーーーーーーーーー
Hレジスタ | Lレジスタ
ーーーーーーーーーーーーーーーーーーーーーーーーーー
F(フラグ)レジスタ というのもあります。
演算の結果起こる様々状態を入れるためのレジスタと書いてありますが、
具体例が書いてないので、何をやるのかちょっとわからないです。
読み進むとわかるのでしょうか。
(裏レジスタ)
ーーーーーーーーーーーーーー
A’ | F’
ーーーーーーーーーーーーーー
B’ | C’
ーーーーーーーーーーーーーー
D’ | E’
ーーーーーーーーーーーーーー
H’ | L’
ーーーーーーーーーーーーーー
裏レジスタというのもあるそうです。
汎用レジスタを表として、その裏らしいです。
裏なので表と同じ動きをします。
裏・表は同時には使えないということです。
その他のレジスタ
ーーーーーーーーーーーーーーーーーーーーー
PC(プログラム・カウンタ)
ーーーーーーーーーーーーーーーーーーーーー
プログラムを読み出すとき=> CPUが、メモリを見て、そのアドレスを指定するときに使います。
(メモリには、何番地というアドレスがあります。その中に数値が入っているのですが、その数値がマシン語の命令となります。そのアドレスをいれてあるみたいです)
(プログラムを実行すると、アドレスを順番に流れていくのですが、たまにbasicでいうGOTOみたいにアドレスが飛ぶのでしょうか?だから、アドレスがはいっているのかなぁ)
ーーーーーーーーーーーーーーーーーーーーーーー
SP(スタック・ポインタ)
ーーーーーーーーーーーーーーーーーーーーーーー
これはアドレスを覚えるのみたいです。詳細は、まだ書いてありませんでした;
ーーーーーーーーーーーーーーーーーーーーーーー
IX ( インデックスレジスタX)
ーーーーーーーーーーーーーーーーーーーーーーー
ーーーーーーーーーーーーーーーーーーーーーーー
IY( インデックスレジスタY)
ーーーーーーーーーーーーーーーーーーーーーーー
この2つもアドレスを指定するみたいです。
詳細はまだ書いてありません。(こんなんばっかり;)
ーーーーーーーーーー
R
ーーーーーーーーーー
ーーーーーーーーーー
I (英数字のアイ)
ーーーーーーーーーー
この2つは 割り込みのものらしいですが、この本では取り上げないそうです
(´・ω・`) ショボーン
疲れました;
もう少し先に進みたかったのですが、今日はこのあたりでやめておきます。
マイペースですが、よろしかったら、今後とも宜しくお願いします
(。-_-)ノ☆・゚::゚
でわー
次のページ
MSX BASIC + マシン語などの情報はこちらへ