このファイルは、YACASL2のREADMEファイルです。 ■機能概要 ■要件 ■コンパイル方法 ■実行方法 ■ライセンス ■機能概要 YACASL2は、Linux上で動作するオープンソースのCASL II処理系。 CASL IIは、情報処理試験で用いられるアセンブラ言語。 仕様は、次の資料「試験で使用する情報処理用語・プログラム言語など」(2008年10月版)の 中にある「別紙 1 アセンブラ言語の仕様」参照。\ http://www.jitec.ipa.go.jp/1_00topic/topic_20081027_hani_yougo.pdf (PDFファイル) ■要件 Linux(Ubuntu Linux 9.04/8.04とVine Linux 4.2で動作確認) インストールに、gcc、makeが必要 ■コンパイル yacasl2.tar.gz をダウンロードし、シェルで次のコマンド実行。 $ tar xvzf yacasl2.tar.gz $ cd yacasl2 $ make コンパイル後、次のコマンドでレグレッションテスト可能。 $ make check ■実行方法 ※asディレクトリに、サンプルのcaslファイルを格納しています。 1. アセンブラファイルをアセンブルし、仮想システムCOMET II上で実行 $ ./casl2 as/hello.casl Hello, World! 2. アセンブラファイルの、ラベルの解析結果とアセンブル詳細結果を出力。 $ ./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 6. アセンブラファイルのアセンブラ結果をオブジェクトファイルadd.oに出力し、 comet2コマンドでadd.oを仮想システムCOMET II上で実行。 $ ./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. オプションの確認 $ ./casl2 --help Usage: ./casl2 [-tdslaAh] [-o ] FILE ... $ ./comet2 --help Usage: ./comet2 [-tdh] FILE 詳細は、チュートリアル(作成予定)参照。 ■ライセンス Copyright (C) 2010 j8takagi (j8takagi@nifty.com) (未定。GPL or 修正BSDの予定)