ドキュメント作成開始
authorj8takagi <j8takagi@nifty.com>
Fri, 5 Feb 2010 22:41:33 +0000 (07:41 +0900)
committerj8takagi <j8takagi@nifty.com>
Fri, 5 Feb 2010 22:41:33 +0000 (07:41 +0900)
README
doc/.gitignore [new file with mode: 0644]
doc/Makefile [new file with mode: 0644]
doc/yacasl2.texi [new file with mode: 0644]

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月版)の
 
 ■機能概要
 YACASL2は、Linux上で動作するオープンソースのCASL II処理系。
 CASL IIは、情報処理試験で用いられるアセンブラ言語。
 仕様は、次の資料「試験で使用する情報処理用語・プログラム言語など」(2008年10月版)の
-中にある「別紙 1 アセンブラ言語の仕様」参照。
+中にある「別紙 1 アセンブラ言語の仕様」参照。\
     http://www.jitec.ipa.go.jp/1_00topic/topic_20081027_hani_yougo.pdf (PDFファイル)
 
 ■要件
     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が必要
 
 インストールに、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
 
  $ tar xvzf yacasl2.tar.gz
- $ cd casl2
+ $ cd yacasl2
  $ make
  $ 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上で実行
 
 1. アセンブラファイルをアセンブルし、仮想システムCOMET II上で実行
 
- $ ./casl as/hello.casl
- $ ./casl as/add.casl
-
+ $ ./casl2 as/hello.casl
+ Hello, World!
 2. アセンブラファイルの、ラベルの解析結果とアセンブル詳細結果を出力。
 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上で実行。
    実行時に、レジスタとメモリの内容を出力
 
 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上で実行。
 
 
 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. オプションの確認
 
 
 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の予定)
 (未定。GPL or 修正BSDの予定)
diff --git a/doc/.gitignore b/doc/.gitignore
new file mode 100644 (file)
index 0000000..00d30e8
--- /dev/null
@@ -0,0 +1 @@
+yacasl2
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644 (file)
index 0000000..e356989
--- /dev/null
@@ -0,0 +1,5 @@
+.PHPNY: html clean
+html: yacasl2.texi
+       @makeinfo --html $^
+clean:
+       @rm -rf yacasl2
diff --git a/doc/yacasl2.texi b/doc/yacasl2.texi
new file mode 100644 (file)
index 0000000..8357b35
--- /dev/null
@@ -0,0 +1,55 @@
+\input texinfo   @c -*-texinfo-*-
+@c %**start of header
+@setfilename yacasl2
+@settitle YACASL2
+@c %**end of header
+
+@copying
+Copyright @copyright{} 2010 j8takagi
+@end copying
+
+@titlepage
+@title YACASL2 -Linux上で動作するCASL2処理系-
+
+@c The following two commands start the copyright page.
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+@end titlepage
+
+@c Output the table of contents at the beginning.
+@contents
+
+@insertcopying
+
+@chapter YACASL2の概要
+
+@cindex chapter, first
+
+YACASL2は、Linux上で動作するオープンソースのCASL II処理系です。
+
+CASL IIは、情報処理試験で用いられるアセンブラ言語で、仕様も公開されています。
+
+@uref{http://www.jitec.ipa.go.jp/1_00topic/topic_20081027_hani_yougo.pdf, 試験で使用する情報処理用語・プログラム言語など(2008年10月版)[PDFファイル]-別紙 1 アセンブラ言語の仕様}
+
+YACASL2は、CASL IIの仕様に準拠した動作をします。
+そのため、情報処理試験の問題をはじめ、各種参考書やサイトに記載されたCASL IIのプログラムをそのまま動作させることができます。
+
+また、本パッケージ中にCASL IIプログラムのサンプルが多数収録されています。
+
+YACASL2は、「通常の処理系」として動作します。ほかの多くのCASL IIエミュレーターと違い、デバッガーとして動作したり、コンピューター内部の模式図を表示したりすることはありません。そのかわり、YACASL2は、次のような動作内容をすべてテキストで出力します。
+
+@enumerate
+@item
+ラベルとアドレスの対応
+@item
+アセンブラ結果
+@item
+実行時のレジスタの内容
+@item
+実行時のメモリの内容
+@end enumerate
+
+出力された動作内容は、GNU/Linuxのさまざまなツール、たとえばhead, tail, grep, diffなどを使って解析できます。
+
+@bye