-このファイルは、YACASL2(仮称)のREADMEファイルである。
+このファイルは、YACASL2のREADMEファイルです。
+
+■機能概要
+■要件
+■コンパイル方法
+■実行方法
+■ライセンス
■機能概要
YACASL2は、Linux上で動作するオープンソースのCASL II処理系。
CASL IIは、情報処理試験で用いられるアセンブラ言語。
仕様は、次の資料「試験で使用する情報処理用語・プログラム言語など」(2008年10月版)の
-中にある「別紙 1 アセンブラ言語の仕様」参照。
+中にある「別紙 1 アセンブラ言語の仕様」参照。\
http://www.jitec.ipa.go.jp/1_00topic/topic_20081027_hani_yougo.pdf (PDFファイル)
■要件
-Linux(Ubuntu Linux 9.04とVine Linux 4.2で動作確認)
+Linux(Ubuntu Linux 9.04/8.04とVine Linux 4.2で動作確認)
インストールに、gcc、makeが必要
-â\96 ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ル
-yacasl2.tar.gz をダウンロードし、シェルで次のコマンド実行
+â\96 ã\82³ã\83³ã\83\91ã\82¤ル
+yacasl2.tar.gz をダウンロードし、シェルで次のコマンド実行。
$ tar xvzf yacasl2.tar.gz
- $ cd casl2
+ $ cd yacasl2
$ make
- gcc -o ../casl2 -g -Wall struct.c cmd.c cerr.c dump.c exec.c label.c parseline.c macro.c assemble.c casl2.c
- gcc -o ../comet2 -g -Wall struct.c cmd.c cerr.c dump.c exec.c comet2.c
- make[1]: Leaving directory `/home/kazubito/casl2/src'
+コンパイル後、次のコマンドでレグレッションテスト可能。
+
+ $ make check
+
■実行方法
-※asディレクトリに、サンプルのcaslファイルを格納
+※asディレクトリに、サンプルのcaslファイルを格納しています。
1. アセンブラファイルをアセンブルし、仮想システムCOMET II上で実行
- $ ./casl as/hello.casl
- $ ./casl as/add.casl
-
+ $ ./casl2 as/hello.casl
+ Hello, World!
+
2. アセンブラファイルの、ラベルの解析結果とアセンブル詳細結果を出力。
- 実行はしない
-
- $ ./casl -Al as/add.casl
-
-3. アセンブラファイルの、ラベルの解析結果とアセンブル詳細結果を
- 出力してから、仮想システムCOMET II上で実行
-
- $ ./casl -al as/add.casl
-
-4. アセンブラファイルの、ラベルの解析結果とアセンブル詳細結果を
- 出力してから、仮想システムCOMET II上で実行。
- 実行時に、レジスタの内容を出力
- $ ./casl -alt as/add.casl
+ $ ./casl2 -al as/FUNC/sum_10.casl
+ as/CMD/ld0.casl: 1:MAIN START
+ as/CMD/ld0.casl: 2: LAD GR1,3
+ #0000 #1210
+ #0001 #0003
+ as/CMD/ld0.casl: 3: LD GR0,GR1
+ #0002 #1401
+ as/CMD/ld0.casl: 4: RET
+ #0003 #8100
+ as/CMD/ld0.casl: 5: END
+
+3. アセンブラファイルを仮想システムCOMET II上で実行し、
+ レジスタの内容を出力
+
+ $ ./casl2 -t as/CMD/ld0.casl
+
+ Assemble as/CMD/ld0.casl (0)
+
+ Assemble as/CMD/ld0.casl (1)
+
+ Executing machine codes
+ #0000: Register::::
+ #0000: GR0: 0 = #0000 = 0000000000000000
+ #0000: GR1: 0 = #0000 = 0000000000000000
+ #0000: GR2: 0 = #0000 = 0000000000000000
+ #0000: GR3: 0 = #0000 = 0000000000000000
+ #0000: GR4: 0 = #0000 = 0000000000000000
+ #0000: GR5: 0 = #0000 = 0000000000000000
+ #0000: GR6: 0 = #0000 = 0000000000000000
+ #0000: GR7: 0 = #0000 = 0000000000000000
+ #0000: SP: 512 = #0200 = 0000001000000000
+ #0000: PR: 0 = #0000 = 0000000000000000
+ #0000: FR (OF SF ZF): 000
+
+ #0002: Register::::
+ #0002: GR0: 0 = #0000 = 0000000000000000
+ #0002: GR1: 3 = #0003 = 0000000000000011
+ #0002: GR2: 0 = #0000 = 0000000000000000
+ #0002: GR3: 0 = #0000 = 0000000000000000
+ #0002: GR4: 0 = #0000 = 0000000000000000
+ #0002: GR5: 0 = #0000 = 0000000000000000
+ #0002: GR6: 0 = #0000 = 0000000000000000
+ #0002: GR7: 0 = #0000 = 0000000000000000
+ #0002: SP: 512 = #0200 = 0000001000000000
+ #0002: PR: 2 = #0002 = 0000000000000010
+ #0002: FR (OF SF ZF): 000
+
+ #0003: Register::::
+ #0003: GR0: 3 = #0003 = 0000000000000011
+ #0003: GR1: 3 = #0003 = 0000000000000011
+ #0003: GR2: 0 = #0000 = 0000000000000000
+ #0003: GR3: 0 = #0000 = 0000000000000000
+ #0003: GR4: 0 = #0000 = 0000000000000000
+ #0003: GR5: 0 = #0000 = 0000000000000000
+ #0003: GR6: 0 = #0000 = 0000000000000000
+ #0003: GR7: 0 = #0000 = 0000000000000000
+ #0003: SP: 512 = #0200 = 0000001000000000
+ #0003: PR: 3 = #0003 = 0000000000000011
+ #0003: FR (OF SF ZF): 000
5. アセンブラファイルの、ラベルの解析結果とアセンブル詳細結果を
出力してから、仮想システムCOMET II上で実行。
実行時に、レジスタとメモリの内容を出力
+ -Mで、COMET IIのメモリサイズを指定できる。
+
+ $ ./casl2 -td -M 16 as/CMD/st0.casl
+
+ Assemble as/CMD/st0.casl (0)
+
+ Assemble as/CMD/st0.casl (1)
+
+ Executing machine codes
+ #0000: Register::::
+ #0000: GR0: 0 = #0000 = 0000000000000000
+ #0000: GR1: 0 = #0000 = 0000000000000000
+ #0000: GR2: 0 = #0000 = 0000000000000000
+ #0000: GR3: 0 = #0000 = 0000000000000000
+ #0000: GR4: 0 = #0000 = 0000000000000000
+ #0000: GR5: 0 = #0000 = 0000000000000000
+ #0000: GR6: 0 = #0000 = 0000000000000000
+ #0000: GR7: 0 = #0000 = 0000000000000000
+ #0000: SP: 16 = #0010 = 0000000000010000
+ #0000: PR: 0 = #0000 = 0000000000000000
+ #0000: FR (OF SF ZF): 000
+ #0000: Memory::::
+ #0000: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+ #0000: 0000: 1200 011E 1100 0005 8100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+
+ #0002: Register::::
+ #0002: GR0: 286 = #011E = 0000000100011110
+ #0002: GR1: 0 = #0000 = 0000000000000000
+ #0002: GR2: 0 = #0000 = 0000000000000000
+ #0002: GR3: 0 = #0000 = 0000000000000000
+ #0002: GR4: 0 = #0000 = 0000000000000000
+ #0002: GR5: 0 = #0000 = 0000000000000000
+ #0002: GR6: 0 = #0000 = 0000000000000000
+ #0002: GR7: 0 = #0000 = 0000000000000000
+ #0002: SP: 16 = #0010 = 0000000000010000
+ #0002: PR: 2 = #0002 = 0000000000000010
+ #0002: FR (OF SF ZF): 000
+ #0002: Memory::::
+ #0002: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+ #0002: 0000: 1200 011E 1100 0005 8100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+
+ #0004: Register::::
+ #0004: GR0: 286 = #011E = 0000000100011110
+ #0004: GR1: 0 = #0000 = 0000000000000000
+ #0004: GR2: 0 = #0000 = 0000000000000000
+ #0004: GR3: 0 = #0000 = 0000000000000000
+ #0004: GR4: 0 = #0000 = 0000000000000000
+ #0004: GR5: 0 = #0000 = 0000000000000000
+ #0004: GR6: 0 = #0000 = 0000000000000000
+ #0004: GR7: 0 = #0000 = 0000000000000000
+ #0004: SP: 16 = #0010 = 0000000000010000
+ #0004: PR: 4 = #0004 = 0000000000000100
+ #0004: FR (OF SF ZF): 000
+ #0004: Memory::::
+ #0004: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+ #0004: 0000: 1200 011E 1100 0005 8100 011E 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
- $ ./casl -altd as/add.casl
6. アセンブラファイルのアセンブラ結果をオブジェクトファイルadd.oに出力し、
comet2コマンドでadd.oを仮想システムCOMET II上で実行。
- $ ./casl -oadd.o as/add.casl
- $ ./comet2 -td add.o
+ $ ./casl2 -Ofib.o as/FUNC/fib_outl.casl as/FUNC/outl.casl
+ $ ./comet2 fib.o
+ 0
+ 1
+ 1
+ 2
+ 3
+ 5
+ 8
+ 13
+ 21
+ 34
+ 55
+ 89
+ 144
+ 233
+ 377
+ 610
+ 987
+ 1597
+ 2584
+ 4181
+ 6765
+ 10946
+ 17711
+ 28657
+ 46368
7. オプションの確認
詳細は、チュートリアル(作成予定)参照。
■ライセンス
-Copyright (C) 2009 j8takagi (j8takagi@nifty.com)
+Copyright (C) 2010 j8takagi (j8takagi@nifty.com)
(未定。GPL or 修正BSDの予定)