diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-12-06 09:41:40 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-12-06 09:41:40 -0800 |
commit | 81605224f085ec85ea11302c938a53cf2dd8a2bc (patch) | |
tree | 2c5840f43d01f69ae7acde462fd7bbbc971a4db3 | |
parent | 33e7c3a75196fbf8bd8412eda797cfa170eb189d (diff) | |
download | mu-81605224f085ec85ea11302c938a53cf2dd8a2bc.tar.gz |
4847
-rw-r--r-- | html/subx/051test.subx.html | 2 | ||||
-rw-r--r-- | html/subx/055trace.subx.html | 4 | ||||
-rw-r--r-- | html/subx/063print-byte.subx.html | 4 | ||||
-rw-r--r-- | html/subx/apps/crenshaw2-1.subx.html | 8 | ||||
-rw-r--r-- | html/subx/apps/crenshaw2-1b.subx.html | 8 | ||||
-rw-r--r-- | html/subx/apps/factorial.subx.html | 2 | ||||
-rw-r--r-- | html/subx/apps/hex.subx.html | 10 | ||||
-rw-r--r-- | html/subx/examples/ex10.subx.html | 2 | ||||
-rw-r--r-- | html/subx/examples/ex11.subx.html | 2 | ||||
-rw-r--r-- | html/subx/examples/ex8.subx.html | 2 | ||||
-rw-r--r-- | html/subx/examples/ex9.subx.html | 2 | ||||
-rw-r--r-- | subx/051test.subx | 2 | ||||
-rw-r--r-- | subx/055trace.subx | 4 | ||||
-rw-r--r-- | subx/063print-byte.subx | 4 | ||||
-rw-r--r-- | subx/apps/crenshaw2-1.subx | 8 | ||||
-rw-r--r-- | subx/apps/crenshaw2-1b.subx | 8 | ||||
-rw-r--r-- | subx/apps/factorial.subx | 2 | ||||
-rw-r--r-- | subx/apps/hex.subx | 10 | ||||
-rw-r--r-- | subx/examples/ex10.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex11.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex8.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex9.subx | 2 |
22 files changed, 46 insertions, 46 deletions
diff --git a/html/subx/051test.subx.html b/html/subx/051test.subx.html index 90b2b48c..fe5354d1 100644 --- a/html/subx/051test.subx.html +++ b/html/subx/051test.subx.html @@ -93,7 +93,7 @@ if ('onhashchange' in window) { <span id="L30" class="LineNr">30 </span> 51/push-ECX <span id="L31" class="LineNr">31 </span> 53/push-EBX <span id="L32" class="LineNr">32 </span> <span class="subxComment"># load first 2 args into EAX and EBX</span> -<span id="L33" class="LineNr">33 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 0/r32/EAX 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to EAX</span> +<span id="L33" class="LineNr">33 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 0/r32/EAX 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to EAX</span> <span id="L34" class="LineNr">34 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 3/r32/EBX 0xc/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+12) to EBX</span> <span id="L35" class="LineNr">35 </span> <span class="subxComment"># if EAX == EBX success</span> <span id="L36" class="LineNr">36 </span> 39/compare 3/mod/direct 0/rm32/EAX <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 3/r32/EBX <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="subxComment"># compare EAX and EBX</span> diff --git a/html/subx/055trace.subx.html b/html/subx/055trace.subx.html index 03af8e3c..f9a25505 100644 --- a/html/subx/055trace.subx.html +++ b/html/subx/055trace.subx.html @@ -360,7 +360,7 @@ if ('onhashchange' in window) { <span id="L294" class="LineNr">294 </span> <span class="subxS2Comment"># . . push outend</span> <span id="L295" class="LineNr">295 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0xc/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+12)</span> <span id="L296" class="LineNr">296 </span> <span class="subxS2Comment"># . . push out</span> -<span id="L297" class="LineNr">297 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L297" class="LineNr">297 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L298" class="LineNr">298 </span> <span class="subxS2Comment"># . . call</span> <span id="L299" class="LineNr">299 </span> e8/call _append-4/disp32 <span id="L300" class="LineNr">300 </span> <span class="subxS2Comment"># . . discard args</span> @@ -387,7 +387,7 @@ if ('onhashchange' in window) { <span id="L321" class="LineNr">321 </span> <span class="subxComment"># EAX/num_bytes_appended = 0</span> <span id="L322" class="LineNr">322 </span> b8/copy-to-EAX 0/imm32 <span id="L323" class="LineNr">323 </span> <span class="subxComment"># EDI = out</span> -<span id="L324" class="LineNr">324 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 7/r32/EDI 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to EDI</span> +<span id="L324" class="LineNr">324 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 7/r32/EDI 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to EDI</span> <span id="L325" class="LineNr">325 </span> <span class="subxComment"># EDX = outend</span> <span id="L326" class="LineNr">326 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 2/r32/EDX 0xc/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+12) to EDX</span> <span id="L327" class="LineNr">327 </span> <span class="subxComment"># ESI = in</span> diff --git a/html/subx/063print-byte.subx.html b/html/subx/063print-byte.subx.html index 0dfe9269..eb445da7 100644 --- a/html/subx/063print-byte.subx.html +++ b/html/subx/063print-byte.subx.html @@ -96,7 +96,7 @@ if ('onhashchange' in window) { <span id="L31" class="LineNr"> 31 </span> <span class="subxComment"># write-byte(f, AL)</span> <span id="L32" class="LineNr"> 32 </span> <span class="subxS2Comment"># . . push args</span> <span id="L33" class="LineNr"> 33 </span> 50/push-EAX -<span id="L34" class="LineNr"> 34 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L34" class="LineNr"> 34 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L35" class="LineNr"> 35 </span> <span class="subxS2Comment"># . . call</span> <span id="L36" class="LineNr"> 36 </span> e8/call write-byte/disp32 <span id="L37" class="LineNr"> 37 </span> <span class="subxS2Comment"># . . discard args</span> @@ -114,7 +114,7 @@ if ('onhashchange' in window) { <span id="L49" class="LineNr"> 49 </span> <span class="subxComment"># write-byte(f, AL)</span> <span id="L50" class="LineNr"> 50 </span> <span class="subxS2Comment"># . . push args</span> <span id="L51" class="LineNr"> 51 </span> 50/push-EAX -<span id="L52" class="LineNr"> 52 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L52" class="LineNr"> 52 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L53" class="LineNr"> 53 </span> <span class="subxS2Comment"># . . call</span> <span id="L54" class="LineNr"> 54 </span> e8/call write-byte/disp32 <span id="L55" class="LineNr"> 55 </span> <span class="subxS2Comment"># . . discard args</span> diff --git a/html/subx/apps/crenshaw2-1.subx.html b/html/subx/apps/crenshaw2-1.subx.html index deef86c6..44b0ac02 100644 --- a/html/subx/apps/crenshaw2-1.subx.html +++ b/html/subx/apps/crenshaw2-1.subx.html @@ -110,7 +110,7 @@ if ('onhashchange' in window) { <span id="L44" class="LineNr"> 44 </span> <span class="subxS1Comment"># . argv[1] == "test"</span> <span id="L45" class="LineNr"> 45 </span> <span class="subxS2Comment"># . . push args</span> <span id="L46" class="LineNr"> 46 </span> 68/push <span class="Constant">"test"</span>/imm32 -<span id="L47" class="LineNr"> 47 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L47" class="LineNr"> 47 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L48" class="LineNr"> 48 </span> <span class="subxS2Comment"># . . call</span> <span id="L49" class="LineNr"> 49 </span> e8/call kernel-string-equal/disp32 <span id="L50" class="LineNr"> 50 </span> <span class="subxS2Comment"># . . discard args</span> @@ -604,7 +604,7 @@ if ('onhashchange' in window) { <span id="L538" class="LineNr">538 </span> 50/push-EAX <span id="L539" class="LineNr">539 </span> <span class="subxComment"># read-byte(f)</span> <span id="L540" class="LineNr">540 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L541" class="LineNr">541 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L541" class="LineNr">541 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L542" class="LineNr">542 </span> <span class="subxS2Comment"># . . call</span> <span id="L543" class="LineNr">543 </span> e8/call read-byte/disp32 <span id="L544" class="LineNr">544 </span> <span class="subxS2Comment"># . . discard args</span> @@ -626,10 +626,10 @@ if ('onhashchange' in window) { <span id="L560" class="LineNr">560 </span> <span class="subxComment"># EAX = false</span> <span id="L561" class="LineNr">561 </span> b8/copy-to-EAX 0/imm32 <span id="L562" class="LineNr">562 </span> <span class="subxComment"># if c < '0' return false</span> -<span id="L563" class="LineNr">563 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 0x30/imm32 <span class="subxComment"># compare *(EBP+8)</span> +<span id="L563" class="LineNr">563 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 0x30/imm32 <span class="subxComment"># compare *(EBP+8)</span> <span id="L564" class="LineNr">564 </span> 7c/jump-if-lesser $is-digit?:end/disp8 <span id="L565" class="LineNr">565 </span> <span class="subxComment"># if c > '9' return false</span> -<span id="L566" class="LineNr">566 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 0x39/imm32 <span class="subxComment"># compare *(EBP+8)</span> +<span id="L566" class="LineNr">566 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 0x39/imm32 <span class="subxComment"># compare *(EBP+8)</span> <span id="L567" class="LineNr">567 </span> 7f/jump-if-greater $is-digit?:end/disp8 <span id="L568" class="LineNr">568 </span> <span class="subxComment"># otherwise return true</span> <span id="L569" class="LineNr">569 </span> b8/copy-to-EAX 1/imm32 diff --git a/html/subx/apps/crenshaw2-1b.subx.html b/html/subx/apps/crenshaw2-1b.subx.html index 3c387555..3d5196a2 100644 --- a/html/subx/apps/crenshaw2-1b.subx.html +++ b/html/subx/apps/crenshaw2-1b.subx.html @@ -110,7 +110,7 @@ if ('onhashchange' in window) { <span id="L44" class="LineNr"> 44 </span> <span class="subxS1Comment"># . argv[1] == "test"</span> <span id="L45" class="LineNr"> 45 </span> <span class="subxS2Comment"># . . push args</span> <span id="L46" class="LineNr"> 46 </span> 68/push <span class="Constant">"test"</span>/imm32 -<span id="L47" class="LineNr"> 47 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L47" class="LineNr"> 47 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L48" class="LineNr"> 48 </span> <span class="subxS2Comment"># . . call</span> <span id="L49" class="LineNr"> 49 </span> e8/call kernel-string-equal/disp32 <span id="L50" class="LineNr"> 50 </span> <span class="subxS2Comment"># . . discard args</span> @@ -802,7 +802,7 @@ if ('onhashchange' in window) { <span id="L736" class="LineNr">736 </span> 50/push-EAX <span id="L737" class="LineNr">737 </span> <span class="subxComment"># read-byte(f)</span> <span id="L738" class="LineNr">738 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L739" class="LineNr">739 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L739" class="LineNr">739 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L740" class="LineNr">740 </span> <span class="subxS2Comment"># . . call</span> <span id="L741" class="LineNr">741 </span> e8/call read-byte/disp32 <span id="L742" class="LineNr">742 </span> <span class="subxS2Comment"># . . discard args</span> @@ -823,10 +823,10 @@ if ('onhashchange' in window) { <span id="L757" class="LineNr">757 </span> <span class="subxComment"># EAX = false</span> <span id="L758" class="LineNr">758 </span> b8/copy-to-EAX 0/imm32 <span id="L759" class="LineNr">759 </span> <span class="subxComment"># if c < '0' return false</span> -<span id="L760" class="LineNr">760 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 0x30/imm32 <span class="subxComment"># compare *(EBP+8)</span> +<span id="L760" class="LineNr">760 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 0x30/imm32 <span class="subxComment"># compare *(EBP+8)</span> <span id="L761" class="LineNr">761 </span> 7c/jump-if-lesser $is-digit?:end/disp8 <span id="L762" class="LineNr">762 </span> <span class="subxComment"># if c > '9' return false</span> -<span id="L763" class="LineNr">763 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 0x39/imm32 <span class="subxComment"># compare *(EBP+8)</span> +<span id="L763" class="LineNr">763 </span> 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 0x39/imm32 <span class="subxComment"># compare *(EBP+8)</span> <span id="L764" class="LineNr">764 </span> 7f/jump-if-greater $is-digit?:end/disp8 <span id="L765" class="LineNr">765 </span> <span class="subxComment"># otherwise return true</span> <span id="L766" class="LineNr">766 </span> b8/copy-to-EAX 1/imm32 diff --git a/html/subx/apps/factorial.subx.html b/html/subx/apps/factorial.subx.html index 9f25d28c..87a467fa 100644 --- a/html/subx/apps/factorial.subx.html +++ b/html/subx/apps/factorial.subx.html @@ -94,7 +94,7 @@ if ('onhashchange' in window) { <span id="L29" class="LineNr"> 29 </span> <span class="subxS1Comment"># . argv[1] == "test"</span> <span id="L30" class="LineNr"> 30 </span> <span class="subxS2Comment"># . . push args</span> <span id="L31" class="LineNr"> 31 </span> 68/push <span class="Constant">"test"</span>/imm32 -<span id="L32" class="LineNr"> 32 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L32" class="LineNr"> 32 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L33" class="LineNr"> 33 </span> <span class="subxS2Comment"># . . call</span> <span id="L34" class="LineNr"> 34 </span> e8/call kernel-string-equal/disp32 <span id="L35" class="LineNr"> 35 </span> <span class="subxS2Comment"># . . discard args</span> diff --git a/html/subx/apps/hex.subx.html b/html/subx/apps/hex.subx.html index d81e587f..7de27c37 100644 --- a/html/subx/apps/hex.subx.html +++ b/html/subx/apps/hex.subx.html @@ -97,7 +97,7 @@ if ('onhashchange' in window) { <span id="L31" class="LineNr"> 31 </span> <span class="subxS1Comment"># . argv[1] == "test"</span> <span id="L32" class="LineNr"> 32 </span> <span class="subxS2Comment"># . . push args</span> <span id="L33" class="LineNr"> 33 </span> 68/push <span class="Constant">"test"</span>/imm32 -<span id="L34" class="LineNr"> 34 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L34" class="LineNr"> 34 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L35" class="LineNr"> 35 </span> <span class="subxS2Comment"># . . call</span> <span id="L36" class="LineNr"> 36 </span> e8/call kernel-string-equal/disp32 <span id="L37" class="LineNr"> 37 </span> <span class="subxS2Comment"># . . discard args</span> @@ -197,7 +197,7 @@ if ('onhashchange' in window) { <span id="L131" class="LineNr"> 131 </span><span class="Constant">$scan-next-byte:loop</span>: <span id="L132" class="LineNr"> 132 </span> <span class="subxComment"># EAX = read-byte(in)</span> <span id="L133" class="LineNr"> 133 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L134" class="LineNr"> 134 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L134" class="LineNr"> 134 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L135" class="LineNr"> 135 </span> <span class="subxS2Comment"># . . call</span> <span id="L136" class="LineNr"> 136 </span> e8/call read-byte/disp32 <span id="L137" class="LineNr"> 137 </span> <span class="subxS2Comment"># . . discard args</span> @@ -234,7 +234,7 @@ if ('onhashchange' in window) { <span id="L168" class="LineNr"> 168 </span> 75/jump-if-not-equal $scan-next-byte:check3/disp8 <span id="L169" class="LineNr"> 169 </span> <span class="subxS1Comment"># . skip-until-newline(in)</span> <span id="L170" class="LineNr"> 170 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L171" class="LineNr"> 171 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L171" class="LineNr"> 171 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L172" class="LineNr"> 172 </span> <span class="subxS2Comment"># . . call</span> <span id="L173" class="LineNr"> 173 </span> e8/call skip-until-newline/disp32 <span id="L174" class="LineNr"> 174 </span> <span class="subxS2Comment"># . . discard args</span> @@ -870,7 +870,7 @@ if ('onhashchange' in window) { <span id="L804" class="LineNr"> 804 </span> <span class="subxS1Comment"># . save registers</span> <span id="L805" class="LineNr"> 805 </span> 51/push-ECX <span id="L806" class="LineNr"> 806 </span> <span class="subxComment"># ECX = c</span> -<span id="L807" class="LineNr"> 807 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 1/r32/ECX 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to ECX</span> +<span id="L807" class="LineNr"> 807 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 1/r32/ECX 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to ECX</span> <span id="L808" class="LineNr"> 808 </span> <span class="subxComment"># return false if c < '0'</span> <span id="L809" class="LineNr"> 809 </span> b8/copy-to-EAX 0/imm32/false <span id="L810" class="LineNr"> 810 </span> 81 7/subop/compare 3/mod/direct 1/rm32/ECX <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x30/imm32 <span class="subxComment"># compare ECX</span> @@ -1038,7 +1038,7 @@ if ('onhashchange' in window) { <span id="L972" class="LineNr"> 972 </span><span class="Constant">$skip-until-newline:loop</span>: <span id="L973" class="LineNr"> 973 </span> <span class="subxS1Comment"># . EAX = read-byte(in)</span> <span id="L974" class="LineNr"> 974 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L975" class="LineNr"> 975 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L975" class="LineNr"> 975 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L976" class="LineNr"> 976 </span> <span class="subxS2Comment"># . . call</span> <span id="L977" class="LineNr"> 977 </span> e8/call read-byte/disp32 <span id="L978" class="LineNr"> 978 </span> <span class="subxS2Comment"># . . discard args</span> diff --git a/html/subx/examples/ex10.subx.html b/html/subx/examples/ex10.subx.html index 55b1c177..c951ca62 100644 --- a/html/subx/examples/ex10.subx.html +++ b/html/subx/examples/ex10.subx.html @@ -86,7 +86,7 @@ if ('onhashchange' in window) { <span id="L24" class="LineNr">24 </span> <span class="subxS2Comment"># . . push argv[2]</span> <span id="L25" class="LineNr">25 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0xc/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+12)</span> <span id="L26" class="LineNr">26 </span> <span class="subxS2Comment"># . . push argv[1]</span> -<span id="L27" class="LineNr">27 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L27" class="LineNr">27 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L28" class="LineNr">28 </span> <span class="subxS2Comment"># . . call</span> <span id="L29" class="LineNr">29 </span> e8/call argv-equal/disp32 <span id="L30" class="LineNr">30 </span> <span class="subxComment"># syscall(exit, EAX)</span> diff --git a/html/subx/examples/ex11.subx.html b/html/subx/examples/ex11.subx.html index cb2150db..ba1add8f 100644 --- a/html/subx/examples/ex11.subx.html +++ b/html/subx/examples/ex11.subx.html @@ -326,7 +326,7 @@ if ('onhashchange' in window) { <span id="L261" class="LineNr">261 </span> 51/push-ECX <span id="L262" class="LineNr">262 </span> 53/push-EBX <span id="L263" class="LineNr">263 </span> <span class="subxComment"># load args into EAX, EBX and ECX</span> -<span id="L264" class="LineNr">264 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 0/r32/EAX 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to EAX</span> +<span id="L264" class="LineNr">264 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 0/r32/EAX 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+8) to EAX</span> <span id="L265" class="LineNr">265 </span> 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> 3/r32/EBX 0xc/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># copy *(EBP+12) to EBX</span> <span id="L266" class="LineNr">266 </span> <span class="subxComment"># if EAX == b/EBX print('.') and return</span> <span id="L267" class="LineNr">267 </span> 39/compare 3/mod/direct 0/rm32/EAX <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 3/r32/EBX <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="subxComment"># compare EAX and EBX</span> diff --git a/html/subx/examples/ex8.subx.html b/html/subx/examples/ex8.subx.html index 07534b4d..41cf1abe 100644 --- a/html/subx/examples/ex8.subx.html +++ b/html/subx/examples/ex8.subx.html @@ -85,7 +85,7 @@ if ('onhashchange' in window) { <span id="L23" class="LineNr">23 </span> 89/copy 3/mod/direct 5/rm32/EBP <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 4/r32/ESP <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> <span class="subxComment"># copy ESP to EBP</span> <span id="L24" class="LineNr">24 </span> <span class="subxComment"># EAX = ascii-length(argv[1])</span> <span id="L25" class="LineNr">25 </span> <span class="subxS2Comment"># . . push args</span> -<span id="L26" class="LineNr">26 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L26" class="LineNr">26 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L27" class="LineNr">27 </span> <span class="subxS2Comment"># . . call</span> <span id="L28" class="LineNr">28 </span> e8/call ascii-length/disp32 <span id="L29" class="LineNr">29 </span> <span class="subxS2Comment"># . . discard args</span> diff --git a/html/subx/examples/ex9.subx.html b/html/subx/examples/ex9.subx.html index 0bb4659c..27ac87ea 100644 --- a/html/subx/examples/ex9.subx.html +++ b/html/subx/examples/ex9.subx.html @@ -89,7 +89,7 @@ if ('onhashchange' in window) { <span id="L28" class="LineNr">28 </span> <span class="subxS2Comment"># . . push argv[2]</span> <span id="L29" class="LineNr">29 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0xc/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+12)</span> <span id="L30" class="LineNr">30 </span> <span class="subxS2Comment"># . . push argv[1]</span> -<span id="L31" class="LineNr">31 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 0x8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> +<span id="L31" class="LineNr">31 </span> ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none <span class="CommentedCode"> . </span> <span class="CommentedCode"> . </span> 8/disp8 <span class="CommentedCode"> . </span> <span class="subxComment"># push *(EBP+8)</span> <span id="L32" class="LineNr">32 </span> <span class="subxS2Comment"># . . call</span> <span id="L33" class="LineNr">33 </span> e8/call ascii-difference/disp32 <span id="L34" class="LineNr">34 </span> <span class="subxS2Comment"># . . discard args</span> diff --git a/subx/051test.subx b/subx/051test.subx index 3fe51218..98816c80 100644 --- a/subx/051test.subx +++ b/subx/051test.subx @@ -30,7 +30,7 @@ check-ints-equal: # (a : int, b : int, msg : (address array byte)) -> <void> 51/push-ECX 53/push-EBX # load first 2 args into EAX and EBX - 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 0/r32/EAX 0x8/disp8 . # copy *(EBP+8) to EAX + 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 0/r32/EAX 8/disp8 . # copy *(EBP+8) to EAX 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 3/r32/EBX 0xc/disp8 . # copy *(EBP+12) to EBX # if EAX == EBX success 39/compare 3/mod/direct 0/rm32/EAX . . . 3/r32/EBX . . # compare EAX and EBX diff --git a/subx/055trace.subx b/subx/055trace.subx index d3a2d698..5e0dda3b 100644 --- a/subx/055trace.subx +++ b/subx/055trace.subx @@ -294,7 +294,7 @@ _append-3: # out : address, outend : address, s : (array byte) -> num_bytes_app # . . push outend ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0xc/disp8 . # push *(EBP+12) # . . push out - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call _append-4/disp32 # . . discard args @@ -321,7 +321,7 @@ _append-4: # out : address, outend : address, in : address, inend : address -> # EAX/num_bytes_appended = 0 b8/copy-to-EAX 0/imm32 # EDI = out - 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 7/r32/EDI 0x8/disp8 . # copy *(EBP+8) to EDI + 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 7/r32/EDI 8/disp8 . # copy *(EBP+8) to EDI # EDX = outend 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 2/r32/EDX 0xc/disp8 . # copy *(EBP+12) to EDX # ESI = in diff --git a/subx/063print-byte.subx b/subx/063print-byte.subx index 686695c4..1268e800 100644 --- a/subx/063print-byte.subx +++ b/subx/063print-byte.subx @@ -31,7 +31,7 @@ print-byte: # f : (address buffered-file), n : num -> <void> # write-byte(f, AL) # . . push args 50/push-EAX - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call write-byte/disp32 # . . discard args @@ -49,7 +49,7 @@ print-byte: # f : (address buffered-file), n : num -> <void> # write-byte(f, AL) # . . push args 50/push-EAX - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call write-byte/disp32 # . . discard args diff --git a/subx/apps/crenshaw2-1.subx b/subx/apps/crenshaw2-1.subx index 25bc897b..6feabcfb 100644 --- a/subx/apps/crenshaw2-1.subx +++ b/subx/apps/crenshaw2-1.subx @@ -44,7 +44,7 @@ # . argv[1] == "test" # . . push args 68/push "test"/imm32 - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call kernel-string-equal/disp32 # . . discard args @@ -538,7 +538,7 @@ get-char: # f : (address buffered-file) -> <void> 50/push-EAX # read-byte(f) # . . push args - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call read-byte/disp32 # . . discard args @@ -560,10 +560,10 @@ is-digit?: # c : int -> bool/EAX # EAX = false b8/copy-to-EAX 0/imm32 # if c < '0' return false - 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 0x30/imm32 # compare *(EBP+8) + 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 0x30/imm32 # compare *(EBP+8) 7c/jump-if-lesser $is-digit?:end/disp8 # if c > '9' return false - 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 0x39/imm32 # compare *(EBP+8) + 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 0x39/imm32 # compare *(EBP+8) 7f/jump-if-greater $is-digit?:end/disp8 # otherwise return true b8/copy-to-EAX 1/imm32 diff --git a/subx/apps/crenshaw2-1b.subx b/subx/apps/crenshaw2-1b.subx index eec78f85..0b4fc27c 100644 --- a/subx/apps/crenshaw2-1b.subx +++ b/subx/apps/crenshaw2-1b.subx @@ -44,7 +44,7 @@ # . argv[1] == "test" # . . push args 68/push "test"/imm32 - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call kernel-string-equal/disp32 # . . discard args @@ -736,7 +736,7 @@ get-char: # f : (address buffered-file) -> <void> 50/push-EAX # read-byte(f) # . . push args - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call read-byte/disp32 # . . discard args @@ -757,10 +757,10 @@ is-digit?: # c : int -> bool/EAX # EAX = false b8/copy-to-EAX 0/imm32 # if c < '0' return false - 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 0x30/imm32 # compare *(EBP+8) + 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 0x30/imm32 # compare *(EBP+8) 7c/jump-if-lesser $is-digit?:end/disp8 # if c > '9' return false - 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 0x39/imm32 # compare *(EBP+8) + 81 7/subop/compare 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 0x39/imm32 # compare *(EBP+8) 7f/jump-if-greater $is-digit?:end/disp8 # otherwise return true b8/copy-to-EAX 1/imm32 diff --git a/subx/apps/factorial.subx b/subx/apps/factorial.subx index 73735fab..bd73d72b 100644 --- a/subx/apps/factorial.subx +++ b/subx/apps/factorial.subx @@ -29,7 +29,7 @@ # . argv[1] == "test" # . . push args 68/push "test"/imm32 - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call kernel-string-equal/disp32 # . . discard args diff --git a/subx/apps/hex.subx b/subx/apps/hex.subx index e0963a7e..c5429285 100644 --- a/subx/apps/hex.subx +++ b/subx/apps/hex.subx @@ -31,7 +31,7 @@ # . argv[1] == "test" # . . push args 68/push "test"/imm32 - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call kernel-string-equal/disp32 # . . discard args @@ -131,7 +131,7 @@ scan-next-byte: # in : (address buffered-file), err : (address buffered-file), $scan-next-byte:loop: # EAX = read-byte(in) # . . push args - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call read-byte/disp32 # . . discard args @@ -168,7 +168,7 @@ $scan-next-byte:check2: 75/jump-if-not-equal $scan-next-byte:check3/disp8 # . skip-until-newline(in) # . . push args - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call skip-until-newline/disp32 # . . discard args @@ -804,7 +804,7 @@ is-hex-lowercase-byte?: # c : byte -> bool/EAX # . save registers 51/push-ECX # ECX = c - 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 1/r32/ECX 0x8/disp8 . # copy *(EBP+8) to ECX + 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 1/r32/ECX 8/disp8 . # copy *(EBP+8) to ECX # return false if c < '0' b8/copy-to-EAX 0/imm32/false 81 7/subop/compare 3/mod/direct 1/rm32/ECX . . . . . 0x30/imm32 # compare ECX @@ -972,7 +972,7 @@ skip-until-newline: # in : (address buffered-file) -> <void> $skip-until-newline:loop: # . EAX = read-byte(in) # . . push args - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call read-byte/disp32 # . . discard args diff --git a/subx/examples/ex10.subx b/subx/examples/ex10.subx index 69e7c2ec..86d7cb54 100644 --- a/subx/examples/ex10.subx +++ b/subx/examples/ex10.subx @@ -24,7 +24,7 @@ # . . push argv[2] ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0xc/disp8 . # push *(EBP+12) # . . push argv[1] - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call argv-equal/disp32 # syscall(exit, EAX) diff --git a/subx/examples/ex11.subx b/subx/examples/ex11.subx index 2a92b172..a03c08d3 100644 --- a/subx/examples/ex11.subx +++ b/subx/examples/ex11.subx @@ -261,7 +261,7 @@ check-ints-equal: # (a : int, b : int, msg : (address array byte)) -> boolean 51/push-ECX 53/push-EBX # load args into EAX, EBX and ECX - 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 0/r32/EAX 0x8/disp8 . # copy *(EBP+8) to EAX + 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 0/r32/EAX 8/disp8 . # copy *(EBP+8) to EAX 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 3/r32/EBX 0xc/disp8 . # copy *(EBP+12) to EBX # if EAX == b/EBX print('.') and return 39/compare 3/mod/direct 0/rm32/EAX . . . 3/r32/EBX . . # compare EAX and EBX diff --git a/subx/examples/ex8.subx b/subx/examples/ex8.subx index 6ec9eb3c..75a77a50 100644 --- a/subx/examples/ex8.subx +++ b/subx/examples/ex8.subx @@ -23,7 +23,7 @@ 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # EAX = ascii-length(argv[1]) # . . push args - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call ascii-length/disp32 # . . discard args diff --git a/subx/examples/ex9.subx b/subx/examples/ex9.subx index ed4e6761..bc842e4b 100644 --- a/subx/examples/ex9.subx +++ b/subx/examples/ex9.subx @@ -28,7 +28,7 @@ # . . push argv[2] ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0xc/disp8 . # push *(EBP+12) # . . push argv[1] - ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 0x8/disp8 . # push *(EBP+8) + ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . . 8/disp8 . # push *(EBP+8) # . . call e8/call ascii-difference/disp32 # . . discard args |