Posts Tagged ‘プログラミング’

CPUとは何をするの?

CPUは日本語では中央演算装置と呼びます。

さて、いったいこれは何をするのでしょうか?

6502CPUを例にして、動きを解説します。

  1. 指定されたメモリの場所(これを番地と呼びます。最初は8000番地とします。)から、1バイト(つまり8ビット)文のメモリ内容を読み込みます。
  2. 読み込んだ値が、6502が持っている命令番号表に合致するかチェックします。
  3. 命令番号と合致しなければ、なにもできずその場でフリーズ!
  4. 合致すれば、処理する命令は決まりました。この命令を処理するために必要な付属データがある場合、8001番地の付属データを読み込みます。(なければ読み込みません)
  5. 命令番号と付属データを使って、命令を実行します。
  6. 読み込むメモリ番地を順次増やしながら1に戻って処理を繰り返します。

実は、これだけなんです。

どのCPUでも基本的に同じです。

命令番号は「オペコード」と呼び、付属データは「オペランド」と呼びます。

命令によってはオペランドを必要としない場合もありますし、逆にオペランドを2バイト以上必要とすることもあります。

つまり、アセンブリ言語のプログラムは、必ず1つの命令コード+0個以上の付属データを1セットとして成り立っているのです。

これを流れにそって書けばゲームもできてしまいます。

CPUがやっていることは、実は単純なんです。※1

ただし!ここからが注意するポイントです。

CPUは「単純」ですから、気を利かせてはくれません。

もしも、実行を開始する番地を1バイト間違えば、まともには動きません。

1ビット間違えただけでも、まともに動きません。

大抵はフリーズしてしまいます。

CPUには「キチン」と指示してあげなければダメなんです。

あなたも、一度CPUに触れてみませんか?

お待ちしております。

※1 もちろん最新のCPUがまったく同じということではありません。

処理の高速化のため、いろいろなテクニックがあるからです。

しかし、基礎はまったく同じです。

プログラミング初級講座で使用する6502CPUについて

プログラミング初級講座では、6502というCPUの勉強を行います。

日本ではZ80、68000やインテル8086シリーズが人気でしたが、6502は良く知られていません。

「6502ってなんだ?なんでそんなCPU勉強するの?」

という疑問が数多く寄せられたため、チョットだけ解説いたします。

この、6502というCPUは1975年に発表された8ビットCPUです。

ずいぶん古いCPUですね。

しかも今は64ビットCPUが当たり前ですから、ずいぶんと小さなCPUです。

能力も今のものと比べると、「静止している」くらいに遅いです。

では、なぜ35年も前の古いCPUをつかうのかというと、それなりの理由があります。

  1. 世界最初のパーソナルコンピュータ APPLEⅡに採用されたCPUである
  2. 任天堂ファミコンに採用されたCPUである
  3. NEC PCエンジンに採用されたCPUである
  4. 命令や機能がシンプルで、学びやすい
  5. メモリアクセス方法が多いため、「メモリ」を活用する意識をつけられる
  6. メモリが少ないため、「アイデア」で勝負できる

このCPUには、乗算や除算の命令すらありません。

自分で作るのです。

アイデアは、制約が強いほど生まれやすいものですから、

感性によっていろいろな作品が生まれます。

6502CPUを学べば、コンピュータの基本を習得でき、最新CPUでも理解することが楽になります。

実は6502CPUは今でも残っているのです。

皆さんが持っている携帯電話、iPod,iPhoneやニンテンドーDS。

これらには、ARMというCPUが搭載されています。

このARMこそ6502を元に作られたCPUなのです。

また、6502はアメリカ・カーネギーメロン大学の講義でも使われたこともあり、

勉強用には最適なCPUです。

6502CPUを学び、コンピュータへの理解を深めてみませんか?