From 4d2782c79989252f7c3a1bb6e438ddcee51b3648 Mon Sep 17 00:00:00 2001 From: j8takagi Date: Sun, 7 Feb 2021 12:05:54 +0900 Subject: [PATCH] =?utf8?q?=E3=82=B5=E3=83=B3=E3=83=97=E3=83=ABaddl.casl?= =?utf8?q?=E3=81=A8=E3=83=9E=E3=83=8B=E3=83=A5=E3=82=A2=E3=83=AB=E3=82=92?= =?utf8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- VERSION | 2 +- as/sample/addl.casl | 2 - doc/manual.texi | 91 ++++++++++++++++++++++++++++++--------------- doc/style.css | 8 +++- 4 files changed, 68 insertions(+), 35 deletions(-) diff --git a/VERSION b/VERSION index 867326a..fa9086d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.5p18 +v0.5p19 diff --git a/as/sample/addl.casl b/as/sample/addl.casl index cacbded..a7d04e6 100644 --- a/as/sample/addl.casl +++ b/as/sample/addl.casl @@ -1,10 +1,8 @@ ;;; ADDL r,adr MAIN START - PUSH 0,GR1 LD GR1,A ADDL GR1,B ST GR1,C - POP GR1 RET A DC 3 B DC 2 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 diff --git a/doc/style.css b/doc/style.css index 9cb0659..2fff4b7 100644 --- a/doc/style.css +++ b/doc/style.css @@ -143,7 +143,13 @@ pre.example strong { border: 2px solid green; } -th, em { +pre.example em { + font-size: 100%; + font-style: normal; + font-weight: bold; +} + +th { font-style: normal; font-weight: bold; font-family: sans-serif; -- 2.18.0