COMETシミュレータおよびタイルプログラミングによるCASLのSqueak実装
情報技術者試験の午後の部で出題される仮想的な計算機COMET IIと、その上で動作する機械語のアセンブリ言語CASL IIをSqueak上に実装してみました。
Squeak上の実装なので、CASLについてはタイル式のプログラミングとしおもにマウスを使ってプログラムを作成できるようになっています。
“COMET Simulator v0.01” の続きを読む
情報技術者試験の午後の部で出題される仮想的な計算機COMET IIと、その上で動作する機械語のアセンブリ言語CASL IIをSqueak上に実装してみました。
Squeak上の実装なので、CASLについてはタイル式のプログラミングとしおもにマウスを使ってプログラムを作成できるようになっています。
“COMET Simulator v0.01” の続きを読む
additinalFilesでパス区切りに¥と/が混在するのに対処した汚いパッチ。
sarbuilder-additional1.cs
上記は結局使えなかったので、修正。WindowsでPackagingしてMacでインストールできた。
sarbuilder-additional2.1.cs
ここでは、Squeak(2005Jの開発者版)をWindows環境にインストールする方法について説明します。
Squeakland.jpの開発者版のダウンロードページから以下のファイルをダウンロードしてください。
開発者版のダウンロードページ
これらのファイルを全てデスクトップに保存しておきます。
“Squeakのインストール方法(2005JをWindows環境へ)” の続きを読む
使用しているOSごとにインストール方法が異なります。
Squeakのインストール方法(2005JをMac OS X 10.5環境へ)
ここでは、Squeak nihongo7をLinux環境にインストールする方法について説明します。
(VMにはSqueak3.6.3-JPatched.tgzを使います)
Squeakland.jpの開発者版のダウンロードページから以下のファイルをダウンロードしてください。
開発者版のダウンロードページ
これらのファイルを全て/tmpにコピーしておきます。
作業では、圧縮解凍ツールとしてunzip, gzip, tarを使います。あらかじめ用意してください。
「CPUの創り方」のTD4のSqueak版シミュレータを作成しました。
書籍で触れられているシミュレータと比べたときのメリットとしては、
が考えられます。逆にデメリットとしては、
が考えられます。
伊藤ゼミ学生向けのものなので、それ以外の方は上記のデメリットをご理解の上、心してお使いください。
なお、機能等一切の保証はありません。
値をAレジスタに格納します。
bit位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
データ | 0 | 0 | 1 | 1 | x | x | x | x |
xxxxで指定した4ビットの値がAレジスタに格納されます。Aレジスタに元々入っていた値は失われます。
値をBレジスタに格納します。
bit位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
データ | 0 | 1 | 1 | 1 | x | x | x | x |
xxxxで指定した4ビットの値がBレジスタに格納されます。Bレジスタに元々入っていた値は失われます。
Bレジスタの内容をAレジスタに格納します。
bit位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
データ | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
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秒
Aレジスタに値を加えます。
bit位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
データ | 0 | 0 | 0 | 0 | x | x | x | x |
xxxxで指定した4ビットの値がAレジスタに加算されます。
加算して桁があふれた場合、Cフラグがセットされます(1になります)。
Bレジスタに値を加えます。
bit位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
データ | 0 | 1 | 0 | 1 | x | x | x | x |
xxxxで指定した4ビットの値がBレジスタに加算されます。
加算して桁があふれた場合、Cフラグがセットされます(1になります)。