私は,以下のシミュレーターを使ったことがある.いずれも良くできたシミュレーターな ので,使ってみると良いだろう.実際,シミュレーターが無いと,CASL IIの学習は大変 である.私の場合,試験問題やプログラムの検証には,これらのシミュレーターを用いて おり,道具として使っている.
http://www.ics.teikyo-u.ac.jp/wcasl2/
図1のプログラムを書いて,COMET IIシミュレーターを実行させると図 2の画面になる.これがCOMET IIのブロック図です.通常のコンピューター のCPUとメモリ(主記憶装置)とほとんど同じです.ただし,現在使われているCPUの機能よ りは,かなり単純化されています.その分,コンピューターの本質を学ぶには良いでしょ う.
このシミュレーターで使われているレジスタを表1にまとめる.ただ し,COMET IIの仕様(教科書P207〜)に無いものもある.なぜなら,アセ ンブラ言語の仕様にはなくても差し支えないが,実際のハードウェアーを構成 する場合,必要不可欠なものがあるからである.COMET IIの仕様になくて,WCASL IIにあ るものは,表1の中で
IR MAR MDR
である.これらの3個のレジスタは,皆さんがアセンブラ CASL IIを記述する場 合は,気にする必要はない.
また,レジスタ以外のモジュールを表2に書いておく.これらのモジュール も,COMET IIやCASL IIの仕様には書かれていない.したがって,アセンブ ラ言語を記述する場合,これらを考える必要はないが,コンピューターの仕組み上,必須 のものである.したがって,必要不可欠なハードウェアーとして,シミュレーターには, 備え付けられている.
記号 | 語源 | 日本語 | 機能 |
GR | General Register | 汎用レジスター | 計算などに用いる |
SP | Stack Pointer | スタックポインター | スタック領域の最上段 のアドレスを保持 |
FR | Flag Register | フラグレジスター | 演算結果の状態を示す |
IR | Instruction Register | 命令レジスタ | 命令そのものを格納 |
MAR | Memory Address Register | メモリアドレスレジスター | メ モリを読み書きする際に,アクセスするアドレスを格納 |
MDR | Memory Data Register | メモリデータレジスタ | メモリとの データのやり取りをする際のデータを格納 |