ハンド・アセンブル

プログラムはハードウエアを動作させるものです。

なので、プログラムを作るためには、

 

ハードウェアに関する情報が必要です。

 


ただし、ハードウェアの詳細な回路図とにらめっこする必要はありません。

プログラムを作るのに必要なハードウェアの情報は7つだけです。

【CPUの情報】

・CPUの種類

・クロック信号の周波数

【メモリーの空間】

・アドレス空間

・1つのアドレスに記憶できる情報のビット数

【I/Oの情報】

・I/Oの種類

・アドレス空間

・接続されている周辺装置


CPUの種類によって使用されるマシン言語が決まってます。

CPUの種類が違えば同じ0101010でもどう解釈するかが違ってきます。

足し算と解釈するCPUもあれば、I/Oへの出力と解釈するCPUもあります。


Z80 CPUのためのマシン語を使います。

クロック信号の周波数とは、クロック・ジェネレータからCPUに与えられる電気信号の周波数のことです。


メモリーのアドレス空間とは、メモリーの中にあるデータの格納場所を指定するアドレスの範囲のことです。

私たちのマイコンには0番地〜255番地のメモリ空間があり、1つの番地に8ビットの命令やデータを記録できます。


接続されているI/Oの種類とは、マイコンと周辺装置を接続するI/Oの種類のことです。

私たちのマイコンには8ビットのレジスタを4つ持った「Z80 PIO」というI/Oが1つだけ搭載されています。

CPUからI/Oのレジスタを操作することで、I/Oの機能を設定することや、周辺装置とデータを入出力することができます。

I/Oのアドレス空間とは、I/Oのレジスタを指定するためのアドレスの範囲のことです。

Z80 PIOには、0番地〜3番地までのアドレス空間があり、

1つの番地で1つのレジスタを指定できます。

メモリーはどの番地でも命令やデータを記憶するという同じ役割を持っていますが、

I/Oは番地が異なると(レジスタの種類が異なると)役割が違ってきます。


私たちのマイコンでは、0番地に「Aポート・データ」、1番地に「Bポート・データ」

、2番地に「Aポート制御」、3番地に「Bポート制御」というZ80 PIOのレジスタが割り当てられています。