エレクトロニクスII 佐藤勝昭教員 金曜1限94番教室 H15年度後期第14回配付メモ04.01.30
ホームページhttp://www.tuat.ac.jp/~katsuaki/Electronics/El2003.html
E-mail: satokats@cc.tuat.ac.jp
Office: 4号館514号室(042-388-7120)
教科書:竹村裕夫著「電子回路の基礎」(コロナ社)
補講:2月10日(火)8:45 低1 期末テスト:2月13日(金)8:45 11号館5F 多目的会議室
実用エレクトロニクスコーナー
コンピュータ第2回
Z80計算機の構成
中京大学のホームページからhttp://www.ccad.sccs.chukyo-u.ac.jp/~mito/syllabi/circuit/z80/
1. Z80
Z80はインテル社の初期の製品である8080プロセッサを発展させ、ザイログ社が開発した、1チップcpuです。現在でも、組込み型CPUの基本的な命令体系となっている。
Z80は16ビットのアドレスバスと8ビットのデータバスを持ち、メモリや外部装置とのデータ交換を行う。Z80はCPU (Central Processing Unit)機能を有するのみで、記憶装置を持たないため、単体では動作させることができない。
2. Z80のシステム
a.
メモリ
Z80の外部にメモリや入出力装置をバスを通して接続すると、計算機として利用できるようになる。メモリには、不揮発型メモリ(ROM)と、揮発性メモリ(RAM)から構成される。Z80の外部にメモリや入出力装置をバスを通して接続することにより、計算機として利用できるようになる。
b.レジスタ
Z80は内部に複数のレジスタ(記憶回路)を持ち、このレジスタを利用して演算を行う。レジスタは、
A,B,C,D,E,H,L
で、各8ビットである。BC, DE, HLは結合して16ビットのアドレスを保持することができる。例えば、HLレジスタの番地のメモリを読みとり、その内容をAレジスタに読み出す命令がある。逆に、Aレジスタの内容を、HLレジスタの番地に書き込むことも出来る。
c.
演算とフラグレジスタ
演算はレジスタAが中心でこのレジスタに他のレジスタの値を加算、減算できる(乗算命令はない)。演算した結果は0、正、負、になるが、この結果はフラグレジスタに記録される。演算結果が0なると、「Z(zero:0)フラグが立つ」と言う。同様に、結果が負の場合、「S(sign:符号)フラグ」が立つ。
B.
プログラム例
1. 二つの番地の加算
Z80の8ビット加算命令を用いて二つのメモリの値を加算する。加算する番地を記号番地でDATA番地とDATA+1番地とする。加算結果はDATA+2番地に記憶する。レジスタHとLは対にして16ビットのHLのレジスタとして、メモリの番地を指示することが出来る。LD HL,DATA は HLレジスタの値をDATAの値に設定する命令で、LD A,(HL) はHLレジスタが指示するメモリの番地の内容をAレジスタに読み出す命令である。(HL)の括弧は"その番地のメモリの値"を意味する。
加算する一方の値はAレジスタであるから、まず、DATA番地の値をAレジスタに置き、これに次の番地の値を加える( ADD A,(HL) )。この前の INC HL 命令でHLの値は1増して、次の番地になっている。加算の結果はAレジスタに残るから、LD (HL),A で、AレジスタをDATA+2の番地に書き込む。これを記号プログラムで書くと次のようになる。
ORG
8000h プログラムの先頭番地
8000 21 09
80 LD HL,DATA HLをDATA番地にする
8003 7E LD
A,(HL) HL番地をAレジスタに読む
8004 23 INC
HL HLを増して101hとする
8005 86 ADD
A,(HL) 101h番地の内容を加える
8006 23 &nb