diff options
Diffstat (limited to 'html/apps/crenshaw2-1b.subx.html')
-rw-r--r-- | html/apps/crenshaw2-1b.subx.html | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/html/apps/crenshaw2-1b.subx.html b/html/apps/crenshaw2-1b.subx.html index ae74e982..c4022fd8 100644 --- a/html/apps/crenshaw2-1b.subx.html +++ b/html/apps/crenshaw2-1b.subx.html @@ -128,7 +128,7 @@ if ('onhashchange' in window) { <span id="L67" class="LineNr"> 67 </span> eb/jump $main:end/disp8 <span id="L68" class="LineNr"> 68 </span><span class="Constant">$run-main</span>: <span id="L69" class="LineNr"> 69 </span> <span class="subxH1Comment"># - otherwise read a program from stdin and emit its translation to stdout</span> -<span id="L70" class="LineNr"> 70 </span> <span class="subxComment"># var ed/eax : exit-descriptor</span> +<span id="L70" class="LineNr"> 70 </span> <span class="subxComment"># var ed/eax: exit-descriptor</span> <span id="L71" class="LineNr"> 71 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># subtract from esp</span> <span id="L72" class="LineNr"> 72 </span> 89/copy 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to eax</span> <span id="L73" class="LineNr"> 73 </span> <span class="subxComment"># configure ed to really exit()</span> @@ -151,7 +151,7 @@ if ('onhashchange' in window) { <span id="L90" class="LineNr"> 90 </span> cd/syscall 0x80/imm8 <span id="L91" class="LineNr"> 91 </span> <span id="L92" class="LineNr"> 92 </span><span class="subxComment"># the main entry point</span> -<span id="L93" class="LineNr"> 93 </span><span class="subxFunction">compile</span>: <span class="subxComment"># in : (addr buffered-file), out : fd or (addr stream byte), err : fd or (addr stream byte), ed : (addr exit-descriptor)</span> +<span id="L93" class="LineNr"> 93 </span><span class="subxFunction">compile</span>: <span class="subxComment"># in: (addr buffered-file), out: fd or (addr stream byte), err: fd or (addr stream byte), ed: (addr exit-descriptor)</span> <span id="L94" class="LineNr"> 94 </span> <span class="subxS1Comment"># . prologue</span> <span id="L95" class="LineNr"> 95 </span> 55/push-ebp <span id="L96" class="LineNr"> 96 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> @@ -166,7 +166,7 @@ if ('onhashchange' in window) { <span id="L105" class="LineNr">105 </span> e8/call <a href='crenshaw2-1b.subx.html#L709'>get-char</a>/disp32 <span id="L106" class="LineNr">106 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L107" class="LineNr">107 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/imm32 <span class="subxComment"># add to esp</span> -<span id="L108" class="LineNr">108 </span> <span class="subxComment"># var num/ecx : (stream byte 7)</span> +<span id="L108" class="LineNr">108 </span> <span class="subxComment"># var num/ecx: (stream byte 7)</span> <span id="L109" class="LineNr">109 </span> <span class="subxComment"># Numbers can be 32 bits or 8 hex bytes long. One of them will be in 'Look', so we need space for 7 bytes.</span> <span id="L110" class="LineNr">110 </span> <span class="subxComment"># Sizing the stream just right buys us overflow-handling for free inside 'get-num'.</span> <span id="L111" class="LineNr">111 </span> <span class="subxComment"># Add 12 bytes for 'read', 'write' and 'length' fields, for a total of 19 bytes, or 0x13 in hex.</span> @@ -252,7 +252,7 @@ if ('onhashchange' in window) { <span id="L191" class="LineNr">191 </span><span class="subxComment"># no space in 'out'.</span> <span id="L192" class="LineNr">192 </span><span class="subxComment"># Input comes from the global variable 'Look' (first byte) and the argument</span> <span id="L193" class="LineNr">193 </span><span class="subxComment"># 'in' (rest). We leave the next byte from 'in' into 'Look' on exit.</span> -<span id="L194" class="LineNr">194 </span><span class="subxFunction">get-num</span>: <span class="subxComment"># in : (addr buffered-file), out : (addr stream byte), err : fd or (addr stream byte), ed : (addr exit-descriptor)</span> +<span id="L194" class="LineNr">194 </span><span class="subxFunction">get-num</span>: <span class="subxComment"># in: (addr buffered-file), out: (addr stream byte), err: fd or (addr stream byte), ed: (addr exit-descriptor)</span> <span id="L195" class="LineNr">195 </span> <span class="subxComment"># pseudocode:</span> <span id="L196" class="LineNr">196 </span> <span class="subxComment"># if (!is-digit?(Look)) expected(ed, err, "integer")</span> <span id="L197" class="LineNr">197 </span> <span class="subxComment"># do</span> @@ -416,7 +416,7 @@ if ('onhashchange' in window) { <span id="L355" class="LineNr">355 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L356" class="LineNr">356 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L357" class="LineNr">357 </span> <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'get-num' below</span> -<span id="L358" class="LineNr">358 </span> <span class="subxS1Comment"># . var ed/eax : exit-descriptor</span> +<span id="L358" class="LineNr">358 </span> <span class="subxS1Comment"># . var ed/eax: exit-descriptor</span> <span id="L359" class="LineNr">359 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># subtract from esp</span> <span id="L360" class="LineNr">360 </span> 89/copy 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to eax</span> <span id="L361" class="LineNr">361 </span> <span class="subxS1Comment"># . tailor-exit-descriptor(ed, 16)</span> @@ -505,7 +505,7 @@ if ('onhashchange' in window) { <span id="L444" class="LineNr">444 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L445" class="LineNr">445 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L446" class="LineNr">446 </span> <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'get-num' below</span> -<span id="L447" class="LineNr">447 </span> <span class="subxS1Comment"># . var ed/eax : exit-descriptor</span> +<span id="L447" class="LineNr">447 </span> <span class="subxS1Comment"># . var ed/eax: exit-descriptor</span> <span id="L448" class="LineNr">448 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># subtract from esp</span> <span id="L449" class="LineNr">449 </span> 89/copy 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to eax</span> <span id="L450" class="LineNr">450 </span> <span class="subxS1Comment"># . tailor-exit-descriptor(ed, 16)</span> @@ -588,7 +588,7 @@ if ('onhashchange' in window) { <span id="L527" class="LineNr">527 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L528" class="LineNr">528 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L529" class="LineNr">529 </span> <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'get-num' below</span> -<span id="L530" class="LineNr">530 </span> <span class="subxS1Comment"># . var ed/eax : exit-descriptor</span> +<span id="L530" class="LineNr">530 </span> <span class="subxS1Comment"># . var ed/eax: exit-descriptor</span> <span id="L531" class="LineNr">531 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># subtract from esp</span> <span id="L532" class="LineNr">532 </span> 89/copy 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to eax</span> <span id="L533" class="LineNr">533 </span> <span class="subxS1Comment"># . tailor-exit-descriptor(ed, 16)</span> @@ -677,7 +677,7 @@ if ('onhashchange' in window) { <span id="L616" class="LineNr">616 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L617" class="LineNr">617 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L618" class="LineNr">618 </span> <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'get-num' below</span> -<span id="L619" class="LineNr">619 </span> <span class="subxS1Comment"># . var ed/eax : exit-descriptor</span> +<span id="L619" class="LineNr">619 </span> <span class="subxS1Comment"># . var ed/eax: exit-descriptor</span> <span id="L620" class="LineNr">620 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># subtract from esp</span> <span id="L621" class="LineNr">621 </span> 89/copy 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to eax</span> <span id="L622" class="LineNr">622 </span> <span class="subxS1Comment"># . tailor-exit-descriptor(ed, 16)</span> @@ -725,7 +725,7 @@ if ('onhashchange' in window) { <span id="L664" class="LineNr">664 </span><span class="subxComment">## helpers</span> <span id="L665" class="LineNr">665 </span> <span id="L666" class="LineNr">666 </span><span class="subxComment"># write(f, "Error: "+s+" expected\n") then stop(ed, 1)</span> -<span id="L667" class="LineNr">667 </span><span class="subxFunction">expected</span>: <span class="subxComment"># ed : (addr exit-descriptor), f : fd or (addr stream byte), s : (addr array byte)</span> +<span id="L667" class="LineNr">667 </span><span class="subxFunction">expected</span>: <span class="subxComment"># ed: (addr exit-descriptor), f: fd or (addr stream byte), s: (addr array byte)</span> <span id="L668" class="LineNr">668 </span> <span class="subxS1Comment"># . prologue</span> <span id="L669" class="LineNr">669 </span> 55/push-ebp <span id="L670" class="LineNr">670 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> @@ -767,7 +767,7 @@ if ('onhashchange' in window) { <span id="L706" class="LineNr">706 </span> c3/return <span id="L707" class="LineNr">707 </span> <span id="L708" class="LineNr">708 </span><span class="subxComment"># read a byte from 'f', and save it in 'Look'</span> -<span id="L709" class="LineNr">709 </span><span class="subxFunction">get-char</span>: <span class="subxComment"># f : (addr buffered-file)</span> +<span id="L709" class="LineNr">709 </span><span class="subxFunction">get-char</span>: <span class="subxComment"># f: (addr buffered-file)</span> <span id="L710" class="LineNr">710 </span> <span class="subxS1Comment"># . prologue</span> <span id="L711" class="LineNr">711 </span> 55/push-ebp <span id="L712" class="LineNr">712 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> @@ -790,7 +790,7 @@ if ('onhashchange' in window) { <span id="L729" class="LineNr">729 </span> 5d/pop-to-ebp <span id="L730" class="LineNr">730 </span> c3/return <span id="L731" class="LineNr">731 </span> -<span id="L732" class="LineNr">732 </span><span class="subxFunction">is-digit?</span>: <span class="subxComment"># c : int -> eax : boolean</span> +<span id="L732" class="LineNr">732 </span><span class="subxFunction">is-digit?</span>: <span class="subxComment"># c: int -> eax: boolean</span> <span id="L733" class="LineNr">733 </span> <span class="subxS1Comment"># . prologue</span> <span id="L734" class="LineNr">734 </span> 55/push-ebp <span id="L735" class="LineNr">735 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> |