はじめてのプログラミング(3)

このシリーズも3回目となりました(前回はこちら)。いよいよ、プログラミングのお話らしくなっていく今回、少し想像力を働かせていただければ幸いです。

EX-80を前にして考え込みました。このプログラムを入れるにはどうしたらよいのでしょうか?とりあえず、そんなところからスタートしました。掲載されているプログラムの形式は、今で言えばアセンブリリストというものです。プログラムの番地、アセンブリ命令、アセンブリコード、が並んでいます。こんな感じです。

8200  MVI A,1     3E 01

これ、どうすればいいんだろう?こんなところで突っかかってしまったのです。16進数はわかりますが、他のアルファベットはどうしたらいいんでしょう?そんなものを入れる部分はないし、入れられたとしても入れ方もわかりません。さて困ったと思っていたら、親切な先輩Hさんがアドバイスしてくれました。

左の8200をまず指定して、右の3E, 01を順番に入れていけばいい。

何だ、真ん中は無視すればいいのですか。少し突破口が開けた感じもしましたが、8200を指定するって、どういうこと?8200, 3E, 01と入れていけばいいのかな?ですが、非情にも入れたものは入れただけで、電卓のように数が積み重なるだけでした。要するに、入れ方にルールがあるらしいのです。ここでまた突っかかりました。どうやら、指定する、というアクションが必要なようです。ここでH先輩に教えを請います。

あの、8200を指定する、ってどういうことでしょうか?

8200はアドレスだから、入れた8200がアドレスだ!とコンピュータに教えてあげる必要がある。このために、8200を入れた後に[ADRS]と書かれたボタンを押すのだ。なるほど、さっそくやってみると、8200を入れ、[ADRS]を押すとあ~ら不思議、入れた8200が左に移動しました。

よく見ると、7セグメントLEDによる表示器は、4桁の塊で2つあります。つまり、8桁あるのです。また、わかりやすいように4桁ずつの間には少し間隔があります。つまり、こんな風に見えます。

0123 4567

ここまでのとおり、8200, [ADRS]と入れると、こんな感じになります(細かな点が違ってたらゴメンナサイ)。

8200 0000

ここで、3E, 01と入れたいのですが、ここでもルールがあるようです。単に、3E, 00と入れても、3E00と積み重なるだけです。すると、H先輩がすかさずアドバイスしてくれます。

最初に3Eまで入れたら、[DATA]を押すのだ。

さっきアドレスを指定したから、今度はデータを指定するのだ。決まりで、データは2桁の16進数でしか入れられないから、3Eで[DATA]、00で[DATA]とするのだ。なるほど、こうやって入れるのか。と思って見たら、最初に3Eを入れて[DATA]を押すと、アドレスが8201にアップするのです。なるほど、こうやって次々とデータを入れていけばよいのだ、と少しずつ要領のわかってきた私でした。

だけでこれだけでは何にもなりません。どうするのでしょう?

コメント