diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-16 18:31:12 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-16 18:31:12 -0800 |
commit | 6070c23e5e1c60d3bb169e43bddfa59b1d322427 (patch) | |
tree | 9a70e378c33c15e4779cf94abda8f37c35a5d1da /html/092stack.subx.html | |
parent | 5a6601aba973ba1d1ef30b7b64438c25623b89c5 (diff) | |
download | mu-6070c23e5e1c60d3bb169e43bddfa59b1d322427.tar.gz |
5897 - rename comparison instructions
Signed and unsigned don't quite capture the essence of what the different combinations of x86 flags are doing for SubX. The crucial distinction is that one set of comparison operators is for integers and the second is for addresses.
Diffstat (limited to 'html/092stack.subx.html')
-rw-r--r-- | html/092stack.subx.html | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/html/092stack.subx.html b/html/092stack.subx.html index 1b0e6fe7..8427a1f8 100644 --- a/html/092stack.subx.html +++ b/html/092stack.subx.html @@ -86,7 +86,7 @@ if ('onhashchange' in window) { <span id="L26" class="LineNr"> 26 </span><span class="Constant">$clear-stack:loop</span>: <span id="L27" class="LineNr"> 27 </span> <span class="subxComment"># if (curr >= max) break</span> <span id="L28" class="LineNr"> 28 </span> 39/compare 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># compare eax with ecx</span> -<span id="L29" class="LineNr"> 29 </span> 73/jump-if-greater-or-equal-unsigned $clear-stack:end/disp8 +<span id="L29" class="LineNr"> 29 </span> 73/jump-if-addr>= $clear-stack:end/disp8 <span id="L30" class="LineNr"> 30 </span> <span class="subxComment"># *curr = 0</span> <span id="L31" class="LineNr"> 31 </span> c6 0/subop/copy 0/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/imm8 <span class="subxComment"># copy byte to *eax</span> <span id="L32" class="LineNr"> 32 </span> <span class="subxComment"># ++curr</span> @@ -181,7 +181,7 @@ if ('onhashchange' in window) { <span id="L121" class="LineNr">121 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to ecx</span> <span id="L122" class="LineNr">122 </span> <span class="subxComment"># if (s->top >= s->length) abort</span> <span id="L123" class="LineNr">123 </span> 39/compare 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># compare *(esi+4) and ecx</span> -<span id="L124" class="LineNr">124 </span> 7e/jump-if-lesser-or-equal $push:abort/disp8 +<span id="L124" class="LineNr">124 </span> 7e/jump-if-<= $push:abort/disp8 <span id="L125" class="LineNr">125 </span> <span class="subxComment"># s->data[s->top] = n</span> <span id="L126" class="LineNr">126 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to eax</span> <span id="L127" class="LineNr">127 </span> 89/copy 1/mod/*+disp8 4/rm32/sib 6/base/esi 1/index/ecx <span class="Normal"> . </span> 0/r32/eax 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy eax to *(esi+ecx+8)</span> @@ -298,7 +298,7 @@ if ('onhashchange' in window) { <span id="L238" class="LineNr">238 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> <span id="L239" class="LineNr">239 </span> <span class="subxComment"># if (s->top <= 0) abort</span> <span id="L240" class="LineNr">240 </span> 81 7/subop/compare 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/imm32 <span class="subxComment"># compare *esi</span> -<span id="L241" class="LineNr">241 </span> 7e/jump-if-lesser-or-equal $pop:abort/disp8 +<span id="L241" class="LineNr">241 </span> 7e/jump-if-<= $pop:abort/disp8 <span id="L242" class="LineNr">242 </span> <span class="subxComment"># s->top -= 4</span> <span id="L243" class="LineNr">243 </span> 81 5/subop/subtract 0/mod/direct 6/rm32/esi <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"># subtract from *esi</span> <span id="L244" class="LineNr">244 </span> <span class="subxComment"># eax = s->data[s->top]</span> @@ -402,7 +402,7 @@ if ('onhashchange' in window) { <span id="L342" class="LineNr">342 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 8/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+8) to esi</span> <span id="L343" class="LineNr">343 </span> <span class="subxComment"># if (s->top <= 0) abort</span> <span id="L344" class="LineNr">344 </span> 81 7/subop/compare 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/imm32 <span class="subxComment"># compare *esi</span> -<span id="L345" class="LineNr">345 </span> 7e/jump-if-lesser-or-equal $top:abort/disp8 +<span id="L345" class="LineNr">345 </span> 7e/jump-if-<= $top:abort/disp8 <span id="L346" class="LineNr">346 </span> <span class="subxComment"># n = s->data[s->top - 4]</span> <span id="L347" class="LineNr">347 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 1/r32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to ecx</span> <span id="L348" class="LineNr">348 </span> 81 5/subop/subtract 3/mod/direct 1/rm32/ecx <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"># subtract from ecx</span> |