いやぁ、久々に遅くまで寝ました。2度寝・3度寝を繰り返し、起きたら12時。その後Beckなぞ見つつ塩味の良くきいたお手製ペペロンチーノなぞを食べながら、昼真っからビールをグビグビ。くはーーーっ!!きくーーーっ!なんか久しぶりにお休みを堪能してるぞ、おいら。考えたら、助手になってから一ヶ月、まともに休んでなかったなぁ。結局今日は1日ゴロゴロ過ごすことに。秋田地方は今年初めての夏日となり、天気も良いしそよぐ風が気持ち良い。幸せだぁ。。。。。ところで以前、R介さんに”秋山さんの様子は日記を読めば何してるかわかりますよねぇ”と言われたことがあるけれど、( ‘-‘ )フフフ 日記に全部描いてる訳じゃないんだよん♪たまには目くらまし情報も載せてみたりしていますからΨ(`∀´)Ψウケケケケ もっとも今日はホントに1日ゴロゴロでしたけどね(^_^;
さて、そんな話はさておき。8ビットパソコンの続きの話から。23年前のパソコンというと、NEC全盛時代。PC-6000、PC-8000、PC-8100、PC-9800と、NECのパソコンが世を席巻していた。これらのパソコンが今と決定的に違うところは、Rom-BASICであったこと。すなわち、電源を入れて何もしないと、BASICが立ち上がるんですな。今のパソコンは電源入れてもOSがないとそのまま”OSねーから立ち上がれねーよっ”って文句を言いますが、NECのパソコンはROMにBASICが書かれているので、そのままBASICのコマンド待ち受け画面になりました。SHARPのポケコンも同様、やっぱりBASICで動いておりました。だからDOSとかが出てきたときに、なんじゃこりゃ?と最初はかなり戸惑ったもんです。SHARPのポケコンがCASIOとちがってマシン語が使えるというのは、このSHARPのポケコンのBASICに、3つの命令が存在したことに由来します。すなわち、PEEK、POKE、そしてCALL
Windows全盛時代の今の人にとってはパソコンの中でデータはファイルとして存在していますが、もともとコンピュータはそんな物認識できません。彼等に認識できるのは、メモリに書き込まれた8ビットの情報だけ。メモリは”番地”といわれるもので表されます。番地は16進数で表され、ポケコンの外部メモリの番地は通常、0000番地からFFFF番地まで存在します。うーん、なんかわかりにくい説明だな(^_^;
んじゃ、も一回CPUに戻って考えましょう。ポケコンのCPUが理解できるのは、1回に8ビットの情報(すなわち2×8のマス目の塗りつぶしパターン256種類)だけです。で、毎回メモリから8ビットの情報を読み出してきてCPUに放り込んで、命令を実行するわけです。なので、メモリに蓄えられる情報も、8ビットあれば十分です。プログラムを実行するには沢山の命令やデータを順々に読んで実行する必要があるので、それを蓄えておくのがメモリです。コンピュータにプログラムを実行させるには、・・・
1.人間がメモリに命令とデータを順繰りに書き込む
2.プログラムの開始番地を指定して、実行させる
3.コンピュータが開始番地から順番に、8ビットのデータを一つ一つ読んで理解してプログラムを進める
という手順が踏まれることになります。もっともポケコンは”画面を表示する”だとか、”キーボードに入力された文字を認識する”だとか、我々ユーザが考えなくても良いような操作も覚え込まないと行けないので、メモリには我々ユーザが書き込める部分と元々機械としての働きをする為にプログラムやデータが書き込まれていて、ユーザには書き込みの出来ない部分とが存在します。こういった領域を示す住所みたいな物が、”番地”です。
といっても、例えばパソコンに”○○番地にいけ”というときに、命令方法としては、”番地に行きなさい”という命令と、それに組み合わせて行き先の番地データを指定する訳ですから、8ビットパソコンでは行ける番地も256カ所に限定されてしまいます。が、これではさすがにプログラムの長さが足りなくなるので、番地だけは16ビットが理解できるように工夫がされています。(といってもCPUは8ビットなので、番地に関する命令が出たときは、その次の2バイトを連続してデータとして読み込めと教え込まれて居るんですけどね、ポケコンは)あ、いまバイトと書きましたが、CPUが1回に理解できるデータ量(8bit)を1バイトと表しますので覚えてね。
というわけで、ポケコンのCPUが理解できるのは8ビット(1バイト)で、CPUに入れる命令やデータを保存しておく場所がメモリーで、それらの命令やデータを納める箇所は”番地”で表されると言うこと、わかりました?で、その番地は16ビットで表されます。1バイト、すなわち8ビットの情報量は0〜255の256段階となっていますが、これ、3桁だし納まり悪いですよね。そこで通常は、16進数表記をします。0は&00(&は16進数ですよっていう意味)。10進数の10は16進数では&0A、11は&0B、12は&0C、13は&0D、14は&0E、15は&0F。で、16進数は16が来たときに桁あがりするから、&10となり、255は&FFと表されます。8ビットの情報量というのは、&00〜&FFで表記できます。んじゃ16ビットの情報量は?&0000〜&FFFFで表すことが出来ます。ポケコンのメモリの番地は&0000〜&FFFFで表されて、それら番地の一つづつの中には&00〜&FFといった情報が書き込まれているわけです。んー、この説明でわかりますかね?まぁここでわからなくても、その先プログラムを実際に作っていくとわかってくると思われるので、次回また続きを読んでみてください。ちなみにこの段階では秋田大の学生達は・・・・きょとんとしておりましたな(^_^;

・ポケコンマシン語入門

投稿ナビゲーション


・ポケコンマシン語入門” への3件のフィードバック

  1. (^^)(^^)学生さんたちが呆然とされている様子が目に浮かびます(^^)(^^)
    …というわたくしも、8bit CPUのアセンブラは読み書きできても回路をおこすことはできない(できあがった回路図を読んで概要はわかりますけど)ので五十歩百歩ですが(^^;

  2. 口止めの件、了解です。
    BASIC、少しだけ齧っているので辛うじて意味がわかります。
    でも実践しろと言われたらできないと思われ(^^;;。

  3. >いしどうさま
    実は私も回路は全然わかりません(笑) でも学生達にはわかったような顔をして、”ほらほら自分で考えてやってごらん”とけしかけております(笑) 実際に留学生君が作り上げた回路を見て、あちゃー、良く作ったなぁと思いましたw しかし、回路が組み上がってパソコンと繋いでみて、数度のつなぎ直しの後に動いたときの彼の誇らしげな顔は見ていてこちらも嬉しかったですね、ホント。この経験は、きっと彼の中で大きな自信になるんだろうと思います。これからこうやって沢山の自信の核を作っていって欲しいなぁ。
    >早雲さま
    重要なのは実践ですってば、ホント。早速H8マイコンボードを買ってやってみましょう!秋月電気で数千円で買えますよ(-.-)ボソッ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です