サンプルaddl.caslとマニュアルを更新
[YACASL2.git] / doc / manual.texi
index abf7653..24ac337 100644 (file)
@@ -253,30 +253,36 @@ $ @kbd{casl2 -a -l addl.casl}
 Assemble addl.casl (0)
 
 Label::::
-MAIN.A ---> #0005
-MAIN.B ---> #0006
 MAIN ---> #0000
+MAIN.A ---> #0007
+MAIN.B ---> #0008
+MAIN.C ---> #0009
 
 Assemble addl.casl (1)
 addl.casl:    1:;;; ADDL r,adr
 addl.casl:    2:MAIN    START
 addl.casl:    3:        LD      GR1,A
     #0000   #1010
-    #0001   #0005
+    #0001   #0007
 addl.casl:    4:        ADDL    GR1,B
     #0002   #2210
-    #0003   #0006
-addl.casl:    5:        RET
-    #0004   #8100
-addl.casl:    6:A       DC      3
-    #0005   #0003
-addl.casl:    7:B       DC      1
-    #0006   #0001
-addl.casl:    8:        END
+    #0003   #0008
+addl.casl:    5:        ST      GR1,C
+    #0004   #1110
+    #0005   #0009
+addl.casl:    6:        RET
+    #0006   #8100
+addl.casl:    7:A       DC      3
+    #0007   #0003
+addl.casl:    8:B       DC      2
+    #0008   #0002
+addl.casl:    9:C       DS      1
+    #0009   #0000
+addl.casl:   10:        END
 @end example
 
 なお、オプション@option{-A}を指定すると、アセンブル結果が表示される時点で処理が終了します。
-仮想マシンCOMET II での実行は行われません。
+仮想マシンCOMET IIでのプログラム実行はされません。
 
 @node Register and memory, Only assemble, Assemble result, Sample usage
 @section 実行時のレジスタとメモリを表示
@@ -292,10 +298,10 @@ YACASL2では実行中のCPUのレジスタとメモリの内容をそれぞれ
 * Step count::                  プログラムのステップ数を表示
 @end menu
 
-@file{addl.casl}ã\81«å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªå®¹é\87\8fã\81¯8èª\9eã\81®ã\81\9fã\82\81、次のようにCPUのレジスタとメモリの内容を表示できます。
+@file{addl.casl}ã\81§ã\81¯、次のようにCPUのレジスタとメモリの内容を表示できます。
 
 @example
-$ @kbd{casl2 -t -d -M8 addl.casl | less}
+$ @kbd{casl2 -t -d -M16 addl.casl | less}
 
 Assemble addl.casl (0)
 
@@ -311,12 +317,14 @@ Executing machine codes
 #0000: GR5:      0 = #0000 = 0000000000000000
 #0000: GR6:      0 = #0000 = 0000000000000000
 #0000: GR7:      0 = #0000 = 0000000000000000
-#0000: SP:       8 = #0008 = 0000000000001000
+#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
-#0000: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 
+#0000: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+       -------------------------------------------------------------------------------------
+#0000: 0000: 1010 0007 2210 0008 1110 0009 8100 0003 0002 0000 0000 0000 0000 0000 0000 0000
+
 #0002: Register::::
 #0002: GR0:      0 = #0000 = 0000000000000000
 #0002: GR1:      3 = #0003 = 0000000000000011
@@ -326,27 +334,47 @@ Executing machine codes
 #0002: GR5:      0 = #0000 = 0000000000000000
 #0002: GR6:      0 = #0000 = 0000000000000000
 #0002: GR7:      0 = #0000 = 0000000000000000
-#0002: SP:       8 = #0008 = 0000000000001000
+#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
-#0002: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 
+#0002: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+       -------------------------------------------------------------------------------------
+#0002: 0000: 1010 0007 2210 0008 1110 0009 8100 0003 0002 0000 0000 0000 0000 0000 0000 0000
+
 #0004: Register::::
 #0004: GR0:      0 = #0000 = 0000000000000000
-#0004: GR1:      4 = #0004 = 0000000000000100
+#0004: GR1:      5 = #0005 = 0000000000000101
 #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:       8 = #0008 = 0000000000001000
+#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
-#0004: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 
+#0004: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+       -------------------------------------------------------------------------------------
+#0004: 0000: 1010 0007 2210 0008 1110 0009 8100 0003 0002 0000 0000 0000 0000 0000 0000 0000
+
+#0006: Register::::
+#0006: GR0:      0 = #0000 = 0000000000000000
+#0006: GR1:      5 = #0005 = 0000000000000101
+#0006: GR2:      0 = #0000 = 0000000000000000
+#0006: GR3:      0 = #0000 = 0000000000000000
+#0006: GR4:      0 = #0000 = 0000000000000000
+#0006: GR5:      0 = #0000 = 0000000000000000
+#0006: GR6:      0 = #0000 = 0000000000000000
+#0006: GR7:      0 = #0000 = 0000000000000000
+#0006: SP:      16 = #0010 = 0000000000010000
+#0006: PR:       6 = #0006 = 0000000000000110
+#0006: FR (OF SF ZF): 000
+#0006: Memory::::
+#0006: adr : 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
+       -------------------------------------------------------------------------------------
+#0006: 0000: 1010 0007 2210 0008 1110 0009 8100 0003 0002 0005 0000 0000 0000 0000 0000 0000
 @end example
 
 @node Register specify, End value, Register and memory, Register and memory
@@ -362,13 +390,14 @@ $ @kbd{casl2 -t addl.casl | grep 'GR1:'}
 #0004: GR1:      4 = #0004 = 0000000000000100
 @end example
 
-この内容を、先に出力したアセンブル結果と引き比べてください。
+この内容を、先に出力したアセンブル結果と比較してください。
 次の表のように、PRとGR1、命令行が対応していることがわかります。
 
 @multitable @columnfractions .3 .3 .4
 @item PR @tab GR1 @tab 命令行
 @item #0000
 @tab #0000
+@tab (なし)
 @item #0002
 @tab #0003
 @tab @code{LD GR1,A}
@@ -389,7 +418,7 @@ $ @kbd{casl2 -t addl.casl | grep 'GR1:' | tail -1}
 #0004: GR1:      4 = #0004 = 0000000000000100
 @end example
 
-@file{sum_10.casl}は、1から10までの整数の和を求めます。
+@file{sum_10.casl}ã\81¯ã\80\81\81\8bã\82\8910ã\81¾ã\81§ã\81®æ\95´æ\95°ã\81®å\92\8cã\82\92æ±\82ã\82\81ã\80\81GR2ã\81«æ ¼ç´\8dã\81\97ã\81¦ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\81«ã\82¹ã\83\88ã\82¢ï¼\88æ\9b¸ã\81\8dè¾¼ã\81¿ï¼\89ã\81\97ã\81¾ã\81\99ã\80\82
 
 @example
 $ @kbd{cat sum_10.casl}
@@ -412,11 +441,11 @@ RST     DS      1               ; 結果
         END
 @end example
 
-@file{sum_10.casl}ã\81§ã\83\95ã\82¡ã\82¤ã\83«çµ\82äº\86æ\99\82の値を確認するには、次のようにします。
+@file{sum_10.casl}ã\81§ã\83\97ã\83­ã\82°ã\83©ã\83 çµ\82äº\86æ\99\82ã\81®GR2の値を確認するには、次のようにします。
 
 @example
-$ @kbd{casl2 -t sum_10.casl | grep 'GR0:' | tail -1}
-#0010: GR0:     55 = #0037 = 0000000000110111 = '7'
+$ @kbd{casl2 -t sum_10.casl | grep 'GR2:' | tail -1}
+#000E: GR2:     55 = #0037 = 0000000000110111 = '7'
 @end example
 
 @node Step count,  , End value, Register and memory
@@ -437,8 +466,8 @@ $ @kbd{casl2 -t addl.casl | grep 'GR1:' | wc -l}
 @file{sum_10.casl}はプログラム内にループがあるため、ステップ数が大きくなります。
 
 @example
-$ @kbd{casl2 -t sum_10.casl | grep 'GR0:' | wc -l}
-54
+$ @kbd{casl2 -t sum_10.casl | grep 'GR2:' | wc -l}
+53
 @end example
 
 @node Only assemble, Analyze word, Register and memory, Sample usage