X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=doc%2Fyacasl2.texi;h=3cfa3d85ad322d3ebe1d53188e0ceb7e74e824c5;hp=e79d67898f90b442b15cf3e71553d58fd5469ebf;hb=d998766540ffc4332d6212a76a38a2242419ffa5;hpb=3c757d760e9af5c84f56e8e3e4cc69eb85721d7c diff --git a/doc/yacasl2.texi b/doc/yacasl2.texi index e79d678..3cfa3d8 100644 --- a/doc/yacasl2.texi +++ b/doc/yacasl2.texi @@ -8,10 +8,13 @@ @settitle YACASL2 - Linux上のCASL II処理系 @firstparagraphindent none @paragraphindent 1 +@c @iftex +@c @usedvipdfmx +@c @end iftex @c %**end of header @copying -Copyright @copyright{} 2010 j8takagi +Copyright @copyright{} 2010-2011 j8takagi @end copying @exampleindent 2 @@ -23,21 +26,21 @@ Copyright @copyright{} 2010 j8takagi @titlepage @title YACASL2 -@subtitle Linux上のCASL II処理系 +@subtitle UNIX/Linuxのコマンドラインインターフェイスで動作するCASL II処理システム @author j8takagi @insertcopying @end titlepage @ifnottex -@node Top +@node Top, About, (dir), (dir) @end ifnottex @menu -* About:: -* Install:: -* Usage:: -* Command Manual:: -* CASL2LIB Manual:: +* About:: YACASL2の概要 +* Install:: YACASL2のインストール +* Usage:: YACASL2の使い方 +* Command Manual:: YACASL2コマンドマニュアル +* CASL2LIB Manual:: CASL2LIBマニュアル @end menu @contents @@ -45,7 +48,7 @@ Copyright @copyright{} 2010 j8takagi @node About, Install, Top, Top @chapter YACASL2の概要 -YACASL2は、Linux上で動作するオープンソースのCASL II処理系です。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。 +YACASL2は、UNIX/Linuxのコマンドラインインターフェイスで動作するオープンソースのCASL II処理システムです。CASL IIは情報処理試験で用いられるアセンブラ言語で、次の資料により仕様が公開されています。 @iftex @cartouche @@ -88,13 +91,13 @@ YACASL2は、LinuxやMac OS Xなど、UNIX系のOS上で動作します。現在 @itemize @bullet @item -Ubuntu Linux 10.10 +Ubuntu Linux 10.04 @item -Vine Linux 4.2 +Vine Linux 5.2 @item -Mac OS X 10.6 +Mac OS X 10.6.5 @end itemize インストール時に、@kbd{tar}、@kbd{gcc}、@kbd{make}が必要です。Linuxの場合は、標準でインストールされていることが多いと思います。Mac OS Xの場合、@code{Xcode}をインストールしてください。 @@ -110,24 +113,23 @@ YACASL2をインストールするには、Linux上で次の作業をします * Build:: @kbd{casl2}、@kbd{comet2}、@kbd{dumpword}のビルド * Simple Test:: @kbd{casl2}の実行テスト * Detail Test:: 詳細なテスト -* Environment:: 環境変数の設定 +* Environment:: 環境変数の設定 @end menu @node Download, Verify, Install, Install @section YACASL2ファイルのダウンロード 次の場所から最新版の@file{tar.gz}ファイルをダウンロードします。 -@iftex -@cartouche -@end iftex -@quotation -@uref{http://github.com/j8takagi/YACASL2, GitHub/j8takagi/YACASL2}の@uref{http://github.com/j8takagi/YACASL2/downloads, ダウンロードページ} -@end quotation -@iftex -@end cartouche -@end iftex -続けて、対応する@file{md5sum}ファイルをダウンロードします。 +@itemize +@item +@uref{yacasl2.tar.gz} - YACASL2のファイル一式を@file{tar.gz}形式で圧縮したもの + +@item +@uref{yacasl2.tar.gz.md5sum} - @file{yacasl2.tar.gz}のMD5ハッシュ値 +@end itemize + +または、@uref{http://github.com/j8takagi/YACASL2/downloads, githubのダウンロードページ}からダウンロード、 @node Verify, Expand, Download, Install @section YACASL2ファイルの検証 @@ -135,7 +137,7 @@ YACASL2をインストールするには、Linux上で次の作業をします ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。 @example -$ @kbd{md5sum yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -} +$ @kbd{openssl md5sum yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -} Files yacasl2.tar.gz.md5sum and - are identical @end example @@ -198,18 +200,18 @@ Hello, World! @example $ @kbd{make check} -194 / 194 tests passed. Details in /home/kazubito/yacasl2/test/integra +195 / 195 tests passed. Details in /home/username/yacasl2/test/integra tion/casl2/Test.log All tests are succeded. -149 / 149 tests passed. Details in /home/kazubito/yacasl2/test/integra +149 / 149 tests passed. Details in /home/username/yacasl2/test/integra tion/comet2/Test.log All tests are succeded. -4 / 4 tests passed. Details in /home/kazubito/yacasl2/test/integration +4 / 4 tests passed. Details in /home/username/yacasl2/test/integration /dumpword/Test.log All tests are succeded. @end example -@node Environment,, Detail Test, Install +@node Environment, , Detail Test, Install @section 環境変数の設定 環境変数を設定することで、YACASL2が使いやすくなります。環境変数の設定は、シェルの初期設定ファイルに追加することでログインしたあと自動的に反映されます。 @@ -283,7 +285,7 @@ $ @kbd{cat hello.casl} MAIN START OUT OBUF,LEN RET -OBUF DC ’Hello, World!’ +OBUF DC 'Hello, World!' LEN DC 13 END @end example @@ -551,7 +553,7 @@ $ @kbd{casl2 -t sum_10.casl | grep 'GR0:' | tail -1} #0010: GR0: 55 = #0037 = 0000000000110111 = '7' @end example -@node Step Count,, Ending Value, Register and Memory +@node Step Count, , Ending Value, Register and Memory @subsection プログラムのステップ数を表示 @kbd{grep}と@kbd{wc}を組み合わせれば、プログラムのステップ数を表示できます。 @@ -626,7 +628,7 @@ $ @kbd{dumpword '#0048'} #0048: 72 = #0048 = 0000000001001000 = 'H' @end example -@node CASL2lib,, Analyze Word, Usage +@node CASL2lib, , Analyze Word, Usage @section CASL2ライブラリの使用 YACASL2の@file{as/casl2lib}ディレクトリには、CASL IIで記述されたライブラリファイルが格納されています。 @@ -670,7 +672,7 @@ $ @kbd{casl2 addl_outl.casl ~/yacasl2/as/casl2lib/outl.casl} 4 @end example -@node Command Manual,CASL2LIB Manual,Usage,TOP +@node Command Manual, CASL2LIB Manual, Usage, Top @chapter YACASL2コマンドマニュアル @cindex YACASL2コマンドマニュアル @@ -683,7 +685,7 @@ YACASL2のコマンドとオプションについて解説します。 * dumpword:: @end menu -@node casl2 +@node casl2, comet2, Command Manual, Command Manual @section @kbd{casl2} @pindex casl2 @@ -741,15 +743,19 @@ CASLファイルの内容を表示します。 @item -t @itemx --trace @itemx --tracearithmetic -プログラム実行中のレジスタの値を次の形式で表示します。@code{<値の10進数表現>}は符号の付いた10進数です。範囲は-32768から32767です。 +プログラム実行中のレジスタの値を次の形式で表示します。 @example -: <レジスタ>: <値の10進数表現> = <値の16進数表現> = <値の2進数表現>[ ='文字'] +: <レジスタ>: <値の10進数表現> = +<値の16進数表現> = <値の2進数表現>[ ='文字'] @end example @itemize @item -@code{}と@code{<値の16進数表現>}は、先頭に@code{#}が付いた4けたの16進数で表されます。範囲は、@code{#0000}から@code{#FFFF}です +@code{}と@code{<レジスタ>}、@code{<値の16進数表現>}は、4けたの16進数で表されます。@code{}と@code{<値の16進数表現>}には、先頭に@code{#}が付きます。範囲は@code{#0000}から@code{#FFFF}です + +@item +@code{<値の10進数表現>}は符号の付いた10進数です。範囲は-32768から32767です。 @item @code{<値の2進数表現>}は、16けたの2進数で表されます。範囲は、@code{0000000000000000}から@code{1111111111111111}です @@ -801,7 +807,7 @@ CASLファイルの内容を表示します。 @kbd{casl2}の使用方法を表示して終了します。 @end table -@node comet2 +@node comet2, dumpword, casl2, Command Manual @section @kbd{comet2} @pindex comet2 @@ -884,7 +890,7 @@ $ @kbd{comet2 hello.o} @kbd{comet2}の使用方法を表示して終了します。 @end table -@node dumpword +@node dumpword, , comet2, Command Manual @section @kbd{dumpword} @pindex dumpword @@ -917,25 +923,25 @@ $ @kbd{dumpword 10} @kbd{dumpword}の使用方法を表示して終了します。 @end table -@node CASL2LIB Manual,,Command Manual,TOP +@node CASL2LIB Manual, , Command Manual, Top @chapter CASL2LIBマニュアル @menu -* ABS:: -* DIVA:: -* DIVL:: -* INL:: -* L2STR:: -* MAX:: -* MINIM:: -* MULA:: -* MULL:: -* OUTA:: -* OUTB:: -* OUTD_Q15:: -* OUTL:: -* REV:: -* STR2L:: +* ABS:: @kbd{ABS} - @file{abs.casl} +* DIVA:: @kbd{DIVA} - @file{diva.casl} +* DIVL:: @kbd{DIVL} - @file{divl.casl} +* INL:: @kbd{INL} - @file{inl.casl} +* L2STR:: @kbd{L2STR} - @file{l2str.casl} +* MAX:: @kbd{MAX} - @file{max.casl} +* MINIM:: @kbd{MINIM} - @file{minim.casl} +* MULA:: @kbd{MULA} - @file{mula.casl} +* MULL:: @kbd{MULL} - @file{mull.casl} +* OUTA:: @kbd{OUTA} - @file{outa.casl} +* OUTB:: @kbd{OUTB} - @file{outb.casl} +* OUTD_Q15:: @kbd{OUTD_Q15} - @file{outd_q15.casl} +* OUTL:: @kbd{OUTL} - @file{outl.casl} +* REV:: @kbd{REV} - @file{rev.casl} +* STR2L:: @kbd{STR2L} - @file{str2l.casl} @end menu @node ABS, DIVA, CASL2LIB Manual, CASL2LIB Manual @@ -969,7 +975,7 @@ GR1を符号付き整数とみなし、絶対値に変換 @end example @example -$ @kbd{casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl +$ @kbd{casl2 call_abs.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/outa.casl \ $CASL2LIBDIR/divl.casl $CASL2LIBDIR/rev.casl} 1 @end example @@ -1026,7 +1032,7 @@ GR2が-32768 @end example @example -$ @kbd{casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl +$ @kbd{casl2 call_diva.casl $CASL2LIBDIR/diva.casl $CASL2LIBDIR/divl.casl \ $CASL2LIBDIR/outa.casl $CASL2LIBDIR/abs.casl $CASL2LIBDIR/rev.casl} -128 -127 @@ -1072,7 +1078,7 @@ GR2が0の場合、1 @end example @example -$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl +$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \ $CASL2LIBDIR/rev.casl} 256 254 @@ -1110,43 +1116,106 @@ $ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl @end example @example -$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl +$ @kbd{casl2 call_divl.casl $CASL2LIBDIR/divl.casl $CASL2LIBDIR/outl.casl \ $CASL2LIBDIR/rev.casl} 256 254 @end example -@node L2STR +@node L2STR, MAX, INL, CASL2LIB Manual @section @kbd{L2STR} - @file{l2str.casl} -@node MAX +符号なし整数を文字列に変換する + +@unnumberedsubsec 入力 +@table @code +@item GR1 +符号なし整数 + +@item GR2 +変換した文字列を格納するアドレス +@end table + +@unnumberedsubsec 出力 +@table @code +@item GR0 +文字列の長さ +@end table + +@unnumberedsubsec 依存する副プログラム +@itemize +@item +@code{DIVL} +@end itemize + +@node MAX, MINIM, L2STR, CASL2LIB Manual @section @kbd{MAX} - @file{max.casl} -@node MINIM +連続した複数のWORDを符号付き整数とみなして最大値を返す + +@unnumberedsubsec 入力 +@table @code +@item GR1 +WORD値を格納したアドレス + +@item GR2 +値の個数 +@end table + +@unnumberedsubsec 出力 +@table @code +@item GR0 +最大値 +@end table + +@unnumberedsubsec 依存する副プログラム +なし + +@node MINIM, MULA, MAX, CASL2LIB Manual @section @kbd{MINIM} - @file{minim.casl} -@node MULA +連続した複数のWORDを符号付き整数とみなして最小値を返す + +@unnumberedsubsec 入力 +@table @code +@item GR1 +WORD値を格納したアドレス + +@item GR2 +値の個数 +@end table + +@unnumberedsubsec 出力 +@table @code +@item GR0 +最小値 +@end table + +@unnumberedsubsec 依存する副プログラム +なし + +@node MULA, MULL, MINIM, CASL2LIB Manual @section @kbd{MULA} - @file{mula.casl} -@node MULL +@node MULL, OUTA, MULA, CASL2LIB Manual @section @kbd{MULL} - @file{mull.casl} -@node OUTA +@node OUTA, OUTB, MULL, CASL2LIB Manual @section @kbd{OUTA} - @file{outa.casl} -@node OUTB +@node OUTB, OUTD_Q15, OUTA, CASL2LIB Manual @section @kbd{OUTB} - @file{outb.casl} -@node OUTD_Q15 +@node OUTD_Q15, OUTL, OUTB, CASL2LIB Manual @section @kbd{OUTD_Q15} - @file{outd_q15.casl} -@node OUTL +@node OUTL, REV, OUTD_Q15, CASL2LIB Manual @section @kbd{OUTL} - @file{outl.casl} -@node REV +@node REV, STR2L, OUTL, CASL2LIB Manual @section @kbd{REV} - @file{rev.casl} -@node STR2L +@node STR2L, , REV, CASL2LIB Manual @section @kbd{STR2L} - @file{str2l.casl} @bye