diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-10-17 22:03:35 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-10-17 22:03:48 -0700 |
commit | b1635a5c8e25650a19999c246be321a0794eb58a (patch) | |
tree | a5ce06d138fac34b1e13fb1b06fd91b8b6c55712 /html/apps/crenshaw2-1b.subx.html | |
parent | 540974343290cb9ac0cf55b999447bf563928612 (diff) | |
download | mu-b1635a5c8e25650a19999c246be321a0794eb58a.tar.gz |
5701
Diffstat (limited to 'html/apps/crenshaw2-1b.subx.html')
-rw-r--r-- | html/apps/crenshaw2-1b.subx.html | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/html/apps/crenshaw2-1b.subx.html b/html/apps/crenshaw2-1b.subx.html index 8572c75a..82254f21 100644 --- a/html/apps/crenshaw2-1b.subx.html +++ b/html/apps/crenshaw2-1b.subx.html @@ -92,7 +92,7 @@ if ('onhashchange' in window) { <span id="L31" class="LineNr"> 31 </span><span class="subxS1Comment"># . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes</span> <span id="L32" class="LineNr"> 32 </span> <span id="L33" class="LineNr"> 33 </span><span class="SpecialChar">Entry</span>: <span class="subxComment"># run tests if necessary, call 'compile' if not</span> -<span id="L34" class="LineNr"> 34 </span> <span class="subxS1Comment"># . prolog</span> +<span id="L34" class="LineNr"> 34 </span> <span class="subxS1Comment"># . prologue</span> <span id="L35" class="LineNr"> 35 </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> <span id="L36" class="LineNr"> 36 </span> <span id="L37" class="LineNr"> 37 </span> <span class="subxComment"># initialize heap</span> @@ -151,8 +151,8 @@ 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 : (address buffered-file), out : fd or (address stream), err : fd or (address stream), ed : (address exit-descriptor) -> <void></span> -<span id="L94" class="LineNr"> 94 </span> <span class="subxS1Comment"># . prolog</span> +<span id="L93" class="LineNr"> 93 </span><span class="subxFunction">compile</span>: <span class="subxComment"># in : (address buffered-file), out : fd or (address stream), err : fd or (address stream), ed : (address 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> <span id="L97" class="LineNr"> 97 </span> <span class="subxS1Comment"># . save registers</span> @@ -243,7 +243,7 @@ if ('onhashchange' in window) { <span id="L182" class="LineNr">182 </span> <span class="subxS1Comment"># . restore registers</span> <span id="L183" class="LineNr">183 </span> 59/pop-to-ecx <span id="L184" class="LineNr">184 </span> 58/pop-to-eax -<span id="L185" class="LineNr">185 </span> <span class="subxS1Comment"># . epilog</span> +<span id="L185" class="LineNr">185 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L186" class="LineNr">186 </span> 89/copy 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 5/r32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebp to esp</span> <span id="L187" class="LineNr">187 </span> 5d/pop-to-ebp <span id="L188" class="LineNr">188 </span> c3/return @@ -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 : (address buffered-file), out : (address stream), err : fd or (address stream), ed : (address exit-descriptor) -> <void></span> +<span id="L194" class="LineNr">194 </span><span class="subxFunction">get-num</span>: <span class="subxComment"># in : (address buffered-file), out : (address stream), err : fd or (address stream), ed : (address 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> @@ -277,7 +277,7 @@ if ('onhashchange' in window) { <span id="L216" class="LineNr">216 </span> <span class="subxComment"># get-char in each iteration of the loop. (Thereby demonstrating that it's</span> <span id="L217" class="LineNr">217 </span> <span class="subxComment"># not the right interface for us. But we'll keep it just to follow Crenshaw.)</span> <span id="L218" class="LineNr">218 </span> <span class="subxComment">#</span> -<span id="L219" class="LineNr">219 </span> <span class="subxS1Comment"># . prolog</span> +<span id="L219" class="LineNr">219 </span> <span class="subxS1Comment"># . prologue</span> <span id="L220" class="LineNr">220 </span> 55/push-ebp <span id="L221" class="LineNr">221 </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> <span id="L222" class="LineNr">222 </span> <span class="subxH1Comment"># - if (is-digit?(Look)) expected(ed, err, "integer")</span> @@ -367,7 +367,7 @@ if ('onhashchange' in window) { <span id="L306" class="LineNr">306 </span> 5a/pop-to-edx <span id="L307" class="LineNr">307 </span> 59/pop-to-ecx <span id="L308" class="LineNr">308 </span> 58/pop-to-eax -<span id="L309" class="LineNr">309 </span> <span class="subxS1Comment"># . epilog</span> +<span id="L309" class="LineNr">309 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L310" class="LineNr">310 </span> 89/copy 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 5/r32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebp to esp</span> <span id="L311" class="LineNr">311 </span> 5d/pop-to-ebp <span id="L312" class="LineNr">312 </span> c3/return @@ -733,8 +733,8 @@ if ('onhashchange' in window) { <span id="L672" class="LineNr">672 </span><span class="subxComment">## helpers</span> <span id="L673" class="LineNr">673 </span> <span id="L674" class="LineNr">674 </span><span class="subxComment"># write(f, "Error: "+s+" expected\n") then stop(ed, 1)</span> -<span id="L675" class="LineNr">675 </span><span class="subxFunction">expected</span>: <span class="subxComment"># ed : (address exit-descriptor), f : fd or (address stream), s : (address array byte) -> <void></span> -<span id="L676" class="LineNr">676 </span> <span class="subxS1Comment"># . prolog</span> +<span id="L675" class="LineNr">675 </span><span class="subxFunction">expected</span>: <span class="subxComment"># ed : (address exit-descriptor), f : fd or (address stream), s : (address array byte)</span> +<span id="L676" class="LineNr">676 </span> <span class="subxS1Comment"># . prologue</span> <span id="L677" class="LineNr">677 </span> 55/push-ebp <span id="L678" class="LineNr">678 </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> <span id="L679" class="LineNr">679 </span> <span class="subxComment"># write(f, "Error: ")</span> @@ -769,14 +769,14 @@ if ('onhashchange' in window) { <span id="L708" class="LineNr">708 </span> e8/call <a href='../059stop.subx.html#L92'>stop</a>/disp32 <span id="L709" class="LineNr">709 </span> <span class="subxComment"># should never get past this point</span> <span id="L710" class="LineNr">710 </span><span class="Constant">$expected:dead-end</span>: -<span id="L711" class="LineNr">711 </span> <span class="subxS1Comment"># . epilog</span> +<span id="L711" class="LineNr">711 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L712" class="LineNr">712 </span> 89/copy 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 5/r32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebp to esp</span> <span id="L713" class="LineNr">713 </span> 5d/pop-to-ebp <span id="L714" class="LineNr">714 </span> c3/return <span id="L715" class="LineNr">715 </span> <span id="L716" class="LineNr">716 </span><span class="subxComment"># read a byte from 'f', and save it in 'Look'</span> -<span id="L717" class="LineNr">717 </span><span class="subxFunction">get-char</span>: <span class="subxComment"># f : (address buffered-file) -> <void></span> -<span id="L718" class="LineNr">718 </span> <span class="subxS1Comment"># . prolog</span> +<span id="L717" class="LineNr">717 </span><span class="subxFunction">get-char</span>: <span class="subxComment"># f : (address buffered-file)</span> +<span id="L718" class="LineNr">718 </span> <span class="subxS1Comment"># . prologue</span> <span id="L719" class="LineNr">719 </span> 55/push-ebp <span id="L720" class="LineNr">720 </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> <span id="L721" class="LineNr">721 </span> <span class="subxS1Comment"># . save registers</span> @@ -793,13 +793,13 @@ if ('onhashchange' in window) { <span id="L732" class="LineNr">732 </span><span class="Constant">$get-char:end</span>: <span id="L733" class="LineNr">733 </span> <span class="subxS1Comment"># . restore registers</span> <span id="L734" class="LineNr">734 </span> 58/pop-to-eax -<span id="L735" class="LineNr">735 </span> <span class="subxS1Comment"># . epilog</span> +<span id="L735" class="LineNr">735 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L736" class="LineNr">736 </span> 89/copy 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 5/r32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebp to esp</span> <span id="L737" class="LineNr">737 </span> 5d/pop-to-ebp <span id="L738" class="LineNr">738 </span> c3/return <span id="L739" class="LineNr">739 </span> <span id="L740" class="LineNr">740 </span><span class="subxFunction">is-digit?</span>: <span class="subxComment"># c : int -> eax : boolean</span> -<span id="L741" class="LineNr">741 </span> <span class="subxS1Comment"># . prolog</span> +<span id="L741" class="LineNr">741 </span> <span class="subxS1Comment"># . prologue</span> <span id="L742" class="LineNr">742 </span> 55/push-ebp <span id="L743" class="LineNr">743 </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> <span id="L744" class="LineNr">744 </span> <span class="subxComment"># eax = false</span> @@ -813,7 +813,7 @@ if ('onhashchange' in window) { <span id="L752" class="LineNr">752 </span> <span class="subxComment"># otherwise return true</span> <span id="L753" class="LineNr">753 </span> b8/copy-to-eax 1/imm32 <span id="L754" class="LineNr">754 </span><span class="Constant">$is-digit?:end</span>: -<span id="L755" class="LineNr">755 </span> <span class="subxS1Comment"># . epilog</span> +<span id="L755" class="LineNr">755 </span> <span class="subxS1Comment"># . epilogue</span> <span id="L756" class="LineNr">756 </span> 89/copy 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 5/r32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy ebp to esp</span> <span id="L757" class="LineNr">757 </span> 5d/pop-to-ebp <span id="L758" class="LineNr">758 </span> c3/return |