COMET Simulator v0.01

cometsimulator.jpg

COMETシミュレータおよびタイルプログラミングによるCASLのSqueak実装

情報技術者試験の午後の部で出題される仮想的な計算機COMET IIと、その上で動作する機械語のアセンブリ言語CASL IIをSqueak上に実装してみました。
Squeak上の実装なので、CASLについてはタイル式のプログラミングとしおもにマウスを使ってプログラムを作成できるようになっています。

“COMET Simulator v0.01” の続きを読む

Squeakのインストール方法(2005JをWindows環境へ)

ここでは、Squeak(2005Jの開発者版)をWindows環境にインストールする方法について説明します。

準備

Squeakland.jpの開発者版のダウンロードページから以下のファイルをダウンロードしてください。
開発者版のダウンロードページ

  1. Squeak-Win32-3.7.1-VM-Imm.zip
  2. SqueakPlugin-dev-527.zip
  3. SqueakV3.sources.zip

これらのファイルを全てデスクトップに保存しておきます。
“Squeakのインストール方法(2005JをWindows環境へ)” の続きを読む

Squeakのインストール方法(nihongo7をLinux環境へ)

squeak.png

ここでは、Squeak nihongo7をLinux環境にインストールする方法について説明します。
(VMにはSqueak3.6.3-JPatched.tgzを使います)

準備

Squeakland.jpの開発者版のダウンロードページから以下のファイルをダウンロードしてください。
開発者版のダウンロードページ

  1. SqueakVM3.6.3-JPatched.tgz
  2. SqueakNihongo7.zip
  3. SqueakV3.sources.zip

これらのファイルを全て/tmpにコピーしておきます。

作業では、圧縮解凍ツールとしてunzip, gzip, tarを使います。あらかじめ用意してください。

“Squeakのインストール方法(nihongo7をLinux環境へ)” の続きを読む

TD4Simulator

td4simulator.jpg

「CPUの創り方」のTD4のSqueak版シミュレータを作成しました。

書籍で触れられているシミュレータと比べたときのメリットとしては、

  • Squeak上が動くマシン上ならどこでも動く。(Macで動かしたかった…)
  • プログラムのソースコードを読める。
  • 自分で改造が可能。

が考えられます。逆にデメリットとしては、

  • Squeakをインストールしてなければインストールが面倒
  • ソースコードが汚い。設計もずさん。
  • きっと改造する気になれない。
  • 多分バグがある。

が考えられます。
伊藤ゼミ学生向けのものなので、それ以外の方は上記のデメリットをご理解の上、心してお使いください。
なお、機能等一切の保証はありません。

“TD4Simulator” の続きを読む

TD4 転送命令

MOV A, Imm

概要

値をAレジスタに格納します。

命令フォーマット

bit位置 7 6 5 4 3 2 1 0
データ 0 0 1 1 x x x x

説明

xxxxで指定した4ビットの値がAレジスタに格納されます。Aレジスタに元々入っていた値は失われます。

MOV B, Imm

概要

値をBレジスタに格納します。

命令フォーマット

bit位置 7 6 5 4 3 2 1 0
データ 0 1 1 1 x x x x

説明

xxxxで指定した4ビットの値がBレジスタに格納されます。Bレジスタに元々入っていた値は失われます。

MOV A, B

概要

Bレジスタの内容をAレジスタに格納します。

命令フォーマット

bit位置 7 6 5 4 3 2 1 0
データ 0 0 0 1 0 0 0 0

MOV B, A

概要

Aレジスタの内容をBレジスタに格納します。

命令フォーマット

bit位置 7 6 5 4 3 2 1 0
データ 0 1 0 0 0 0 0 0

MOV B,Aの命令が間違っていました。

最終更新時間:2006年09月14日 18時15分41秒

TD4の説明

TD4の概要

  • TD4は、2つのレジスタ、出力ポート、入力ポート、全加算器、プログラムカウンタを持つ4ビットCPUです。
  • 全てのデータは4ビットで構成されています。
  • ROMには16語の命令語からなるプログラムを格納でき、1語あたり8ビットで構成されています。
  • クロックには、手動、低速(1Hz)、高速(10Hz)の3モードがあります。
  • リセットボタンを押すとプログラムカウンタが0000となります。

TD4の動作サイクル

  1. ROMから、プログラムカウンタ(PC)が示す番地の命令語が取り出されます。
  2. 命令語の上位4ビットは命令として解釈され、下位4ビットは全加算器に送られます。
  3. 解釈された命令に従って、レジスタA,B・入力ポート・ゼロ値のいずれかが全加算器に送られます。
  4. 全加算器の結果が、(解釈された命令に従って)レジスタA,B・出力ポート・PCのいずれかに格納されます。
  5. 上記でPCにデータが格納されなかった場合は、PCの値を1増します。
  6. 最初に戻ります。

TD4の命令

TD4 加算命令

ADD A, Imm

概要

Aレジスタに値を加えます。

命令フォーマット

bit位置 7 6 5 4 3 2 1 0
データ 0 0 0 0 x x x x

説明

xxxxで指定した4ビットの値がAレジスタに加算されます。
加算して桁があふれた場合、Cフラグがセットされます(1になります)。

ADD B, Imm

概要

Bレジスタに値を加えます。

命令フォーマット

bit位置 7 6 5 4 3 2 1 0
データ 0 1 0 1 x x x x

説明

xxxxで指定した4ビットの値がBレジスタに加算されます。
加算して桁があふれた場合、Cフラグがセットされます(1になります)。