コマンド動作検証用のCASL2プログラム整理を開始
[YACASL2.git] / README
diff --git a/README b/README
index bbe97ea..88a2cf3 100644 (file)
--- a/README
+++ b/README
-このファイルは、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. オプションの確認
 
@@ -66,5 +199,5 @@ yacasl2.tar.gz をダウンロードし、シェルで次のコマンド実行
 詳細は、チュートリアル(作成予定)参照。
 
 ■ライセンス    
-Copyright (C) 2009 j8takagi (j8takagi@nifty.com)
+Copyright (C) 2010 j8takagi (j8takagi@nifty.com)
 (未定。GPL or 修正BSDの予定)