X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=doc%2Fmanual.texi;fp=doc%2Fmanual.texi;h=24ac3370e600dc0ef69fc497aa42b841bfe90a74;hp=abf765313af72fa85ac9b5aa42691a83205913c1;hb=4d2782c79989252f7c3a1bb6e438ddcee51b3648;hpb=dd7db0064f34aad2320277be079cf9b426a57a88 diff --git a/doc/manual.texi b/doc/manual.texi index abf7653..24ac337 100644 --- a/doc/manual.texi +++ b/doc/manual.texi @@ -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}に必要なメモリ容量は8語のため、次のようにCPUのレジスタとメモリの内容を表示できます。 +@file{addl.casl}では、次のように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}は、1から10までの整数の和を求め、GR2に格納してからメモリにストア(書き込み)します。 @example $ @kbd{cat sum_10.casl} @@ -412,11 +441,11 @@ RST DS 1 ; 結果 END @end example -@file{sum_10.casl}でファイル終了時の値を確認するには、次のようにします。 +@file{sum_10.casl}でプログラム終了時の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