@c %**end of header
@copying
-Copyright @copyright{} 2010-2012 j8takagi
+Copyright @copyright{} 2010-2018 j8takagi
@end copying
@dircategory Programming
* casl2 invocation:: casl2の呼び出し
* comet2 invocation:: comet2の呼び出し
* dumpword invocation:: dumpwordの呼び出し
-* CASL2LIB Manual:: CASL2LIBマニュアル
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+YACASL2の使用例
+
+* Simple output:: 実行結果の出力だけを表示
+* Assemble result:: アセンブル結果の確認
+* Register and memory:: 実行時のレジスタとメモリを表示
+* Only assemble:: アセンブルと実行を別に行う
+* Analyze word:: 1語の解析
+* Use CASL2LIB:: CASL2ライブラリの使用
+
+実行時のレジスタとメモリを表示
+
+* Register specify:: 特定のレジスタを表示
+* End value::
+* Step count:: プログラムのステップ数を表示
+
+@end detailmenu
@end menu
@contents
YACASL2は、CASL IIアセンブラ言語で記述されたファイルをアセンブルし、
仮想マシンCOMET II上で実行します。
アセンブルと実行は、連続で行うこともできますし、
-ã\82¢ã\82»ã\83³ã\83\96ã\83«çµ\90æ\9e\9cã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\81«ä¿\9då\98ã\81\97ã\81¦ã\81\82ã\82\89から実行することもできます。
+ã\82¢ã\82»ã\83³ã\83\96ã\83«çµ\90æ\9e\9cã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\81«ä¿\9då\98ã\81\97ã\81¦ã\81\82ã\81¨から実行することもできます。
YACASL2の動作はCASL IIの仕様に準拠しているため、情報処理試験の問題を
はじめ各種参考書やサイトに記載されたCASL IIのプログラムを
そのままアセンブルして実行できます。
また、本パッケージ中にCASL IIのサンプルプログラムが多数収録されています。
YACASL2は、「ふつうの処理系」として動作します。
-ほかの多くのCASL IIエミュレータと違い、デバッガとして動作したり、
-コンピュータ内部の模式図を表示したりすることはありません。
-そのかわり、YACASL2は、次のような動作内容をすべてテキストで出力します。
+YACASL2の操作は、端末上のコマンドラインインターフェイス(CLI)で操作します。
+YACASL2は、次のような動作内容をすべてテキストで出力します。
@itemize @bullet
実行時のメモリの内容
@end itemize
-出力された動作内容は、GNU/Linuxのさまざまなコマンド、
+YACASL2では、機械コードモニターを使い、動作中のCPUやメモリーを調べたりデバッグしたりすることもできます。
+
+また、出力された動作内容は、GNU/Linuxのさまざまなコマンド、
たとえば、@command{cat}、@command{less}、@command{grep}、@command{wc}などを使って解析できます。
-YACASL2の操作は、端末上のコマンドラインインターフェイスで行います。
+
@node Sample usage, casl2 invocation, Overview, Top
@chapter YACASL2の使用例
0000106
@end example
-オブジェクトファイルの実行には、@command{casl2}を使います。
+オブジェクトファイルの実行には、@command{comet2}を使います。
@example
$ @kbd{comet2 hello.o}
$ @kbd{casl2 addl_outl.casl ~/yacasl2/as/casl2lib/outl.casl}
@end example
-@unnumberedsubsec オプション
+@unnumberedsec オプション
@command{casl2}は、次のオプションを指定できます。
引数が指定されない場合は、エラーメッセージを表示して終了します。
複数の引数を指定した場合、2番目以降の引数は無視されます。
-@unnumberedsubsec オプション
+@unnumberedsec オプション
@command{comet2}は、次のオプションを指定できます。
@command{comet2}の使用方法を表示して終了します。
@end table
-@node dumpword invocation, CASL2LIB Manual, comet2 invocation, Top
+@node dumpword invocation, , comet2 invocation, Top
@chapter @command{dumpword}の呼び出し
@pindex dumpword
引数が指定されない場合は、使い方を表示して終了します。
複数の引数を指定した場合、1つ目の引数だけが表示され、2つ目以降の引数は無視されます。
-@unnumberedsubsec 注意
+@unnumberedsec 注意
マイナスの数や16進数はシェルの仕様により、そのままでは指定できません。
#0048: 72 = #0048 = 0000000001001000 = 'H'
@end example
-@unnumberedsubsec オプション
+@unnumberedsec オプション
@command{dumpword}は、次のオプションを指定できます。
@command{dumpword}の使用方法を表示して終了します。
@end table
-@node CASL2LIB Manual, , dumpword invocation, Top
-@chapter CASL2LIBマニュアル
-
-@menu
-* 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
-@section @kbd{ABS} - @file{abs.casl}
-GR1を符号付き整数とみなし、絶対値に変換
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-符号付き整数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR1
-入力された値の絶対値
-
-@item OF
-入力された値が-32768の場合、1
-
-@item SF
-入力された値が負数(-32767から-1)の場合、1
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude casl2lib/abs/call_abs.casl
-@end example
-
-@example
-$ @kbd{casl2 call_abs.casl $CASL2LIB/abs.casl $CASL2LIB/outa.casl \
- $CASL2LIB/divl.casl $CASL2LIB/rev.casl}
-1
-@end example
-
-@node DIVA, DIVL, ABS, CASL2LIB Manual
-@section @kbd{DIVA} - @file{diva.casl}
-符号付き整数の割算を筆算方式で行う
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-被除数
-
-@item GR2
-除数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-商
-
-@item GR3
-剰余
-
-@item OF
-次の場合、1
-@itemize
-@item
-GR2が0
-
-@item
-GR1が-32768
-
-@item
-GR2が-32768
-@end itemize
-
-@item SF
-商が負数(-32767から-1)の場合、1
-
-@item ZF
-商が0の場合、1
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-@itemize
-@item @code{DIVL}
-@end itemize
-
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude casl2lib/diva/call_diva.casl
-@end example
-
-@example
-$ @kbd{casl2 call_diva.casl $CASL2LIB/diva.casl $CASL2LIB/divl.casl \
- $CASL2LIB/outa.casl $CASL2LIB/abs.casl $CASL2LIB/rev.casl}
--128
--127
-@end example
-
-@node DIVL, INL, DIVA, CASL2LIB Manual
-@section @kbd{DIVL} - @file{divl.casl}
-符号なし整数の割算を筆算方式で行う
-
-@unnumberedsubsec 入力
-@table @code
-@item GR1
-被除数
-
-@item GR2
-除数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR0
-商
-
-@item GR3
-剰余
-
-@item OF
-GR2が0の場合、1
-
-@item SF
-商が32768から65535の場合、1
-
-@item ZF
-商が0の場合、1
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-なし
-
-@unnumberedsubsec 使用例
-@example
-@verbatiminclude casl2lib/divl/call_divl.casl
-@end example
-
-@example
-$ @kbd{casl2 call_divl.casl $CASL2LIB/divl.casl $CASL2LIB/outl.casl \
- $CASL2LIB/rev.casl}
-256
-254
-@end example
-
-@node INL, L2STR, DIVL, CASL2LIB Manual
-@section @kbd{INL} - @file{inl.casl}
-
-符号なし整数の入力を受け付ける
-
-@unnumberedsubsec 入力
-@table @code
-@item 標準入力
-符号なし整数
-@end table
-
-@unnumberedsubsec 出力
-@table @code
-@item GR1
-入力された符号なし整数
-
-@item GR0
-文字列の長さ。
-数字以外が入力された場合は@code{#FFFF}
-@end table
-
-@unnumberedsubsec 依存する副プログラム
-@itemize
-@item
-@code{STR2L}
-@end itemize
-
-@unnumberedsubsec 使用例
-次のコマンドを実行すると、数値の入力が受け付けられ、入力された数値が表示される。
-
-@example
-@verbatiminclude casl2lib/inl/call_inl.casl
-@end example
-
-@example
-$ @kbd{casl2 -M1024 call_inl.casl $CASL2LIB/inl.casl $CASL2LIB/str2l.casl $CASL2LIB/mull.casl \
- $CASL2LIB/outl.casl $CASL2LIB/divl.casl $CASL2LIB/rev.casl}
-@end example
-
-@node L2STR, MAX, INL, CASL2LIB Manual
-@section @kbd{L2STR} - @file{l2str.casl}
-
-符号なし整数を文字列に変換する
-
-@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}
-
-連続した複数の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}
-
-連続した複数の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, OUTA, MULA, CASL2LIB Manual
-@section @kbd{MULL} - @file{mull.casl}
-
-@node OUTA, OUTB, MULL, CASL2LIB Manual
-@section @kbd{OUTA} - @file{outa.casl}
-
-@node OUTB, OUTD_Q15, OUTA, CASL2LIB Manual
-@section @kbd{OUTB} - @file{outb.casl}
-
-@node OUTD_Q15, OUTL, OUTB, CASL2LIB Manual
-@section @kbd{OUTD_Q15} - @file{outd_q15.casl}
-
-@node OUTL, REV, OUTD_Q15, CASL2LIB Manual
-@section @kbd{OUTL} - @file{outl.casl}
-
-@node REV, STR2L, OUTL, CASL2LIB Manual
-@section @kbd{REV} - @file{rev.casl}
-
-@node STR2L, , REV, CASL2LIB Manual
-@section @kbd{STR2L} - @file{str2l.casl}
-
@bye