diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-27 00:39:46 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-27 00:39:46 -0800 |
commit | 2104d1a75b76dbffc0b15a96c98d94e7a16594e8 (patch) | |
tree | 2a839b86e76431a9bbe4bf155f7411171a26d7f8 /html/apps/pack.subx.html | |
parent | 71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff) | |
download | mu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz |
5925
Diffstat (limited to 'html/apps/pack.subx.html')
-rw-r--r-- | html/apps/pack.subx.html | 122 |
1 files changed, 61 insertions, 61 deletions
diff --git a/html/apps/pack.subx.html b/html/apps/pack.subx.html index c44ed3f1..ac2e8513 100644 --- a/html/apps/pack.subx.html +++ b/html/apps/pack.subx.html @@ -117,7 +117,7 @@ if ('onhashchange' in window) { <span id="L55" class="LineNr"> 55 </span> eb/jump $subx-pack-main:end/disp8 <span id="L56" class="LineNr"> 56 </span><span class="Constant">$subx-pack-main:interactive</span>: <span id="L57" class="LineNr"> 57 </span> <span class="subxH1Comment"># - otherwise convert stdin</span> -<span id="L58" class="LineNr"> 58 </span> <span class="subxComment"># var ed/eax : exit-descriptor</span> +<span id="L58" class="LineNr"> 58 </span> <span class="subxComment"># var ed/eax: exit-descriptor</span> <span id="L59" class="LineNr"> 59 </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="L60" class="LineNr"> 60 </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="L61" class="LineNr"> 61 </span> <span class="subxComment"># configure ed to really exit()</span> @@ -159,9 +159,9 @@ if ('onhashchange' in window) { <span id="L97" class="LineNr"> 97 </span><span class="subxComment"># next-token-from-slice(start, end, delim char) -> slice</span> <span id="L98" class="LineNr"> 98 </span><span class="subxComment"># slice-equal?(slice, string)</span> <span id="L99" class="LineNr"> 99 </span> -<span id="L100" class="LineNr"> 100 </span><span class="subxFunction">subx-pack</span>: <span class="subxComment"># in : (addr buffered-file), out : (addr buffered-file)</span> +<span id="L100" class="LineNr"> 100 </span><span class="subxFunction">subx-pack</span>: <span class="subxComment"># in: (addr buffered-file), out: (addr buffered-file)</span> <span id="L101" class="LineNr"> 101 </span> <span class="subxComment"># pseudocode:</span> -<span id="L102" class="LineNr"> 102 </span> <span class="subxComment"># var line : (stream byte 512)</span> +<span id="L102" class="LineNr"> 102 </span> <span class="subxComment"># var line: (stream byte 512)</span> <span id="L103" class="LineNr"> 103 </span> <span class="subxComment"># var in-code? = false</span> <span id="L104" class="LineNr"> 104 </span> <span class="subxComment"># while true</span> <span id="L105" class="LineNr"> 105 </span> <span class="subxComment"># clear-stream(line)</span> @@ -190,17 +190,17 @@ if ('onhashchange' in window) { <span id="L128" class="LineNr"> 128 </span> 51/push-ecx <span id="L129" class="LineNr"> 129 </span> 52/push-edx <span id="L130" class="LineNr"> 130 </span> 53/push-ebx -<span id="L131" class="LineNr"> 131 </span> <span class="subxComment"># var line/ecx : (stream byte 512)</span> +<span id="L131" class="LineNr"> 131 </span> <span class="subxComment"># var line/ecx: (stream byte 512)</span> <span id="L132" class="LineNr"> 132 </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> 0x200/imm32 <span class="subxComment"># subtract from esp</span> <span id="L133" class="LineNr"> 133 </span> 68/push 0x200/imm32/length <span id="L134" class="LineNr"> 134 </span> 68/push 0/imm32/read <span id="L135" class="LineNr"> 135 </span> 68/push 0/imm32/write <span id="L136" class="LineNr"> 136 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> -<span id="L137" class="LineNr"> 137 </span> <span class="subxComment"># var word-slice/edx : slice</span> +<span id="L137" class="LineNr"> 137 </span> <span class="subxComment"># var word-slice/edx: slice</span> <span id="L138" class="LineNr"> 138 </span> 68/push 0/imm32/end <span id="L139" class="LineNr"> 139 </span> 68/push 0/imm32/start <span id="L140" class="LineNr"> 140 </span> 89/copy 3/mod/direct 2/rm32/edx <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 edx</span> -<span id="L141" class="LineNr"> 141 </span> <span class="subxComment"># var in-code?/ebx : boolean = false</span> +<span id="L141" class="LineNr"> 141 </span> <span class="subxComment"># var in-code?/ebx: boolean = false</span> <span id="L142" class="LineNr"> 142 </span> 31/xor 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear ebx</span> <span id="L143" class="LineNr"> 143 </span><span class="Constant">$subx-pack:loop</span>: <span id="L144" class="LineNr"> 144 </span> <span class="subxComment"># clear-stream(line)</span> @@ -818,9 +818,9 @@ if ('onhashchange' in window) { <span id="L909" class="LineNr"> 909 </span> 5d/pop-to-ebp <span id="L910" class="LineNr"> 910 </span> c3/return <span id="L911" class="LineNr"> 911 </span> -<span id="L912" class="LineNr"> 912 </span><span class="subxFunction">convert-data</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L912" class="LineNr"> 912 </span><span class="subxFunction">convert-data</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L913" class="LineNr"> 913 </span> <span class="subxComment"># pseudocode:</span> -<span id="L914" class="LineNr"> 914 </span> <span class="subxComment"># var word-slice : slice</span> +<span id="L914" class="LineNr"> 914 </span> <span class="subxComment"># var word-slice: slice</span> <span id="L915" class="LineNr"> 915 </span> <span class="subxComment"># while true</span> <span id="L916" class="LineNr"> 916 </span> <span class="subxComment"># word-slice = next-word(line)</span> <span id="L917" class="LineNr"> 917 </span> <span class="subxComment"># if slice-empty?(word-slice) # end of file (maybe including trailing whitespace)</span> @@ -845,7 +845,7 @@ if ('onhashchange' in window) { <span id="L936" class="LineNr"> 936 </span> 50/push-eax <span id="L937" class="LineNr"> 937 </span> 51/push-ecx <span id="L938" class="LineNr"> 938 </span> 52/push-edx -<span id="L939" class="LineNr"> 939 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L939" class="LineNr"> 939 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L940" class="LineNr"> 940 </span> 68/push 0/imm32/end <span id="L941" class="LineNr"> 941 </span> 68/push 0/imm32/start <span id="L942" class="LineNr"> 942 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> @@ -874,9 +874,9 @@ if ('onhashchange' in window) { <span id="L1029" class="LineNr">1029 </span> 0f 85/jump-if-!= $convert-data:<span class="Constant">break</span>/disp32 <span id="L1030" class="LineNr">1030 </span><span class="Constant">$convert-data:check-for-comment</span>: <span id="L1031" class="LineNr">1031 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#"))</span> -<span id="L1032" class="LineNr">1032 </span> <span class="subxS1Comment"># . var start/edx : (addr byte) = word-slice->start</span> +<span id="L1032" class="LineNr">1032 </span> <span class="subxS1Comment"># . var start/edx: (addr byte) = word-slice->start</span> <span id="L1033" class="LineNr">1033 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to edx</span> -<span id="L1034" class="LineNr">1034 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L1034" class="LineNr">1034 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L1035" class="LineNr">1035 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L1036" class="LineNr">1036 </span> 8a/copy-byte 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *edx to AL</span> <span id="L1037" class="LineNr">1037 </span> <span class="subxS1Comment"># . if (c != '#') goto next check</span> @@ -895,9 +895,9 @@ if ('onhashchange' in window) { <span id="L1050" class="LineNr">1050 </span> 0f 85/jump-if-!= $convert-data:end/disp32 <span id="L1051" class="LineNr">1051 </span><span class="Constant">$convert-data:check-for-label</span>: <span id="L1052" class="LineNr">1052 </span> <span class="subxComment"># if (slice-ends-with?(word-slice, ":"))</span> -<span id="L1053" class="LineNr">1053 </span> <span class="subxS1Comment"># . var end/edx : (addr byte) = word-slice->end</span> +<span id="L1053" class="LineNr">1053 </span> <span class="subxS1Comment"># . var end/edx: (addr byte) = word-slice->end</span> <span id="L1054" class="LineNr">1054 </span> 8b/copy 1/mod/*+disp8 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ecx+4) to edx</span> -<span id="L1055" class="LineNr">1055 </span> <span class="subxS1Comment"># . var c/eax : byte = *(end-1)</span> +<span id="L1055" class="LineNr">1055 </span> <span class="subxS1Comment"># . var c/eax: byte = *(end-1)</span> <span id="L1056" class="LineNr">1056 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L1057" class="LineNr">1057 </span> 8a/copy-byte 1/mod/*+disp8 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL -1/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy byte at *ecx to AL</span> <span id="L1058" class="LineNr">1058 </span> <span class="subxS1Comment"># . if (c != ':') goto next check</span> @@ -1579,7 +1579,7 @@ if ('onhashchange' in window) { <span id="L1809" class="LineNr">1809 </span><span class="subxComment"># unceremoniously abort on non-numeric operands except disp or imm</span> <span id="L1810" class="LineNr">1810 </span><span class="subxComment"># opcodes must be lowercase and zero padded</span> <span id="L1811" class="LineNr">1811 </span><span class="subxComment"># opcodes with misleading operand metadata may get duplicated as operands as well. don't rely on this.</span> -<span id="L1812" class="LineNr">1812 </span><span class="subxFunction">convert-instruction</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L1812" class="LineNr">1812 </span><span class="subxFunction">convert-instruction</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L1813" class="LineNr">1813 </span> <span class="subxComment"># pseudocode:</span> <span id="L1814" class="LineNr">1814 </span> <span class="subxComment"># # some early exits</span> <span id="L1815" class="LineNr">1815 </span> <span class="subxComment"># var word-slice = next-word(line)</span> @@ -1607,7 +1607,7 @@ if ('onhashchange' in window) { <span id="L1837" class="LineNr">1837 </span> 50/push-eax <span id="L1838" class="LineNr">1838 </span> 51/push-ecx <span id="L1839" class="LineNr">1839 </span> 52/push-edx -<span id="L1840" class="LineNr">1840 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L1840" class="LineNr">1840 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L1841" class="LineNr">1841 </span> 68/push 0/imm32/end <span id="L1842" class="LineNr">1842 </span> 68/push 0/imm32/start <span id="L1843" class="LineNr">1843 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> @@ -1633,9 +1633,9 @@ if ('onhashchange' in window) { <span id="L1863" class="LineNr">1863 </span> 75/jump-if-!= $convert-instruction:pass-through/disp8 <span id="L1864" class="LineNr">1864 </span><span class="Constant">$convert-instruction:check1</span>: <span id="L1865" class="LineNr">1865 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) write-stream-data(out, line)</span> -<span id="L1866" class="LineNr">1866 </span> <span class="subxS1Comment"># . var start/edx : (addr byte) = word-slice->start</span> +<span id="L1866" class="LineNr">1866 </span> <span class="subxS1Comment"># . var start/edx: (addr byte) = word-slice->start</span> <span id="L1867" class="LineNr">1867 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to edx</span> -<span id="L1868" class="LineNr">1868 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L1868" class="LineNr">1868 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L1869" class="LineNr">1869 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L1870" class="LineNr">1870 </span> 8a/copy-byte 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *edx to AL</span> <span id="L1871" class="LineNr">1871 </span> <span class="subxS1Comment"># . if (c == '#') pass through</span> @@ -1643,9 +1643,9 @@ if ('onhashchange' in window) { <span id="L1873" class="LineNr">1873 </span> 74/jump-if-= $convert-instruction:pass-through/disp8 <span id="L1874" class="LineNr">1874 </span><span class="Constant">$convert-instruction:check2</span>: <span id="L1875" class="LineNr">1875 </span> <span class="subxComment"># if (slice-ends-with?(word-slice, ":")) write-stream-data(out, line)</span> -<span id="L1876" class="LineNr">1876 </span> <span class="subxS1Comment"># . var end/edx : (addr byte) = word-slice->end</span> +<span id="L1876" class="LineNr">1876 </span> <span class="subxS1Comment"># . var end/edx: (addr byte) = word-slice->end</span> <span id="L1877" class="LineNr">1877 </span> 8b/copy 1/mod/*+disp8 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ecx+4) to edx</span> -<span id="L1878" class="LineNr">1878 </span> <span class="subxS1Comment"># . var c/eax : byte = *(end-1)</span> +<span id="L1878" class="LineNr">1878 </span> <span class="subxS1Comment"># . var c/eax: byte = *(end-1)</span> <span id="L1879" class="LineNr">1879 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L1880" class="LineNr">1880 </span> 8a/copy-byte 1/mod/*+disp8 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL -1/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy byte at *ecx to AL</span> <span id="L1881" class="LineNr">1881 </span> <span class="subxS1Comment"># . if (c == ':') pass through</span> @@ -1723,7 +1723,7 @@ if ('onhashchange' in window) { <span id="L1953" class="LineNr">1953 </span> 5d/pop-to-ebp <span id="L1954" class="LineNr">1954 </span> c3/return <span id="L1955" class="LineNr">1955 </span> -<span id="L1956" class="LineNr">1956 </span><span class="subxFunction">emit-opcodes</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L1956" class="LineNr">1956 </span><span class="subxFunction">emit-opcodes</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L1957" class="LineNr">1957 </span> <span class="subxComment"># opcodes occupy 1-3 bytes:</span> <span id="L1958" class="LineNr">1958 </span> <span class="subxComment"># xx</span> <span id="L1959" class="LineNr">1959 </span> <span class="subxComment"># 0f xx</span> @@ -1764,11 +1764,11 @@ if ('onhashchange' in window) { <span id="L1994" class="LineNr">1994 </span> 51/push-ecx <span id="L1995" class="LineNr">1995 </span> 52/push-edx <span id="L1996" class="LineNr">1996 </span> 53/push-ebx -<span id="L1997" class="LineNr">1997 </span> <span class="subxComment"># var op1/ecx : slice</span> +<span id="L1997" class="LineNr">1997 </span> <span class="subxComment"># var op1/ecx: slice</span> <span id="L1998" class="LineNr">1998 </span> 68/push 0/imm32/end <span id="L1999" class="LineNr">1999 </span> 68/push 0/imm32/start <span id="L2000" class="LineNr">2000 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> -<span id="L2001" class="LineNr">2001 </span> <span class="subxComment"># var op2/edx : slice</span> +<span id="L2001" class="LineNr">2001 </span> <span class="subxComment"># var op2/edx: slice</span> <span id="L2002" class="LineNr">2002 </span> 68/push 0/imm32/end <span id="L2003" class="LineNr">2003 </span> 68/push 0/imm32/start <span id="L2004" class="LineNr">2004 </span> 89/copy 3/mod/direct 2/rm32/edx <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 edx</span> @@ -1800,9 +1800,9 @@ if ('onhashchange' in window) { <span id="L2030" class="LineNr">2030 </span> 3d/compare-eax-and 0/imm32/false <span id="L2031" class="LineNr">2031 </span> 0f 85/jump-if-!= $emit-opcodes:end/disp32 <span id="L2032" class="LineNr">2032 </span> <span class="subxComment"># if (slice-starts-with?(op1, "#")) return</span> -<span id="L2033" class="LineNr">2033 </span> <span class="subxS1Comment"># . var start/ebx : (addr byte) = op1->start</span> +<span id="L2033" class="LineNr">2033 </span> <span class="subxS1Comment"># . var start/ebx: (addr byte) = op1->start</span> <span id="L2034" class="LineNr">2034 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to ebx</span> -<span id="L2035" class="LineNr">2035 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L2035" class="LineNr">2035 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L2036" class="LineNr">2036 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L2037" class="LineNr">2037 </span> 8a/copy-byte 0/mod/indirect 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *ebx to AL</span> <span id="L2038" class="LineNr">2038 </span> <span class="subxS1Comment"># . if (c == '#') return</span> @@ -1893,9 +1893,9 @@ if ('onhashchange' in window) { <span id="L2123" class="LineNr">2123 </span> 3d/compare-eax-and 0/imm32/false <span id="L2124" class="LineNr">2124 </span> 0f 85/jump-if-!= $emit-opcodes:end/disp32 <span id="L2125" class="LineNr">2125 </span> <span class="subxComment"># if (slice-starts-with?(op2, "#")) return</span> -<span id="L2126" class="LineNr">2126 </span> <span class="subxS1Comment"># . var start/ebx : (addr byte) = op2->start</span> +<span id="L2126" class="LineNr">2126 </span> <span class="subxS1Comment"># . var start/ebx: (addr byte) = op2->start</span> <span id="L2127" class="LineNr">2127 </span> 8b/copy 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *edx to ebx</span> -<span id="L2128" class="LineNr">2128 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L2128" class="LineNr">2128 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L2129" class="LineNr">2129 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L2130" class="LineNr">2130 </span> 8a/copy-byte 0/mod/indirect 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *ebx to AL</span> <span id="L2131" class="LineNr">2131 </span> <span class="subxS1Comment"># . if (c == '#') return</span> @@ -1972,9 +1972,9 @@ if ('onhashchange' in window) { <span id="L2202" class="LineNr">2202 </span> 3d/compare-eax-and 0/imm32/false <span id="L2203" class="LineNr">2203 </span> 0f 85/jump-if-!= $emit-opcodes:end/disp32 <span id="L2204" class="LineNr">2204 </span> <span class="subxComment"># if (slice-starts-with?(op3, "#")) return</span> -<span id="L2205" class="LineNr">2205 </span> <span class="subxS1Comment"># . var start/ebx : (addr byte) = op2->start</span> +<span id="L2205" class="LineNr">2205 </span> <span class="subxS1Comment"># . var start/ebx: (addr byte) = op2->start</span> <span id="L2206" class="LineNr">2206 </span> 8b/copy 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *edx to ebx</span> -<span id="L2207" class="LineNr">2207 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L2207" class="LineNr">2207 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L2208" class="LineNr">2208 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L2209" class="LineNr">2209 </span> 8a/copy-byte 0/mod/indirect 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *ebx to AL</span> <span id="L2210" class="LineNr">2210 </span> <span class="subxS1Comment"># . if (c == '#') return</span> @@ -2019,11 +2019,11 @@ if ('onhashchange' in window) { <span id="L2249" class="LineNr">2249 </span> 5d/pop-to-ebp <span id="L2250" class="LineNr">2250 </span> c3/return <span id="L2251" class="LineNr">2251 </span> -<span id="L2252" class="LineNr">2252 </span><span class="subxFunction">emit-modrm</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L2252" class="LineNr">2252 </span><span class="subxFunction">emit-modrm</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L2253" class="LineNr">2253 </span> <span class="subxComment"># pseudocode:</span> <span id="L2254" class="LineNr">2254 </span> <span class="subxComment"># rewind-stream(line)</span> <span id="L2255" class="LineNr">2255 </span> <span class="subxComment"># var has-modrm? = false, mod = 0, rm32 = 0, r32 = 0</span> -<span id="L2256" class="LineNr">2256 </span> <span class="subxComment"># var word-slice : slice</span> +<span id="L2256" class="LineNr">2256 </span> <span class="subxComment"># var word-slice: slice</span> <span id="L2257" class="LineNr">2257 </span> <span class="subxComment"># while true</span> <span id="L2258" class="LineNr">2258 </span> <span class="subxComment"># word-slice = next-word(line)</span> <span id="L2259" class="LineNr">2259 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> @@ -2055,17 +2055,17 @@ if ('onhashchange' in window) { <span id="L2285" class="LineNr">2285 </span> 53/push-ebx <span id="L2286" class="LineNr">2286 </span> 56/push-esi <span id="L2287" class="LineNr">2287 </span> 57/push-edi -<span id="L2288" class="LineNr">2288 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L2288" class="LineNr">2288 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L2289" class="LineNr">2289 </span> 68/push 0/imm32/end <span id="L2290" class="LineNr">2290 </span> 68/push 0/imm32/start <span id="L2291" class="LineNr">2291 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> -<span id="L2292" class="LineNr">2292 </span> <span class="subxComment"># var has-modrm?/edx : boolean = false</span> +<span id="L2292" class="LineNr">2292 </span> <span class="subxComment"># var has-modrm?/edx: boolean = false</span> <span id="L2293" class="LineNr">2293 </span> 31/xor 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear edx</span> -<span id="L2294" class="LineNr">2294 </span> <span class="subxComment"># var mod/ebx : byte = 0</span> +<span id="L2294" class="LineNr">2294 </span> <span class="subxComment"># var mod/ebx: byte = 0</span> <span id="L2295" class="LineNr">2295 </span> 31/xor 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear ebx</span> -<span id="L2296" class="LineNr">2296 </span> <span class="subxComment"># var rm32/esi : byte = 0</span> +<span id="L2296" class="LineNr">2296 </span> <span class="subxComment"># var rm32/esi: byte = 0</span> <span id="L2297" class="LineNr">2297 </span> 31/xor 3/mod/direct 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear esi</span> -<span id="L2298" class="LineNr">2298 </span> <span class="subxComment"># var r32/edi : byte = 0</span> +<span id="L2298" class="LineNr">2298 </span> <span class="subxComment"># var r32/edi: byte = 0</span> <span id="L2299" class="LineNr">2299 </span> 31/xor 3/mod/direct 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 7/r32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear edi</span> <span id="L2300" class="LineNr">2300 </span> <span class="subxComment"># rewind-stream(line)</span> <span id="L2301" class="LineNr">2301 </span> <span class="subxS2Comment"># . . push args</span> @@ -2101,9 +2101,9 @@ if ('onhashchange' in window) { <span id="L2402" class="LineNr">2402 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) break</span> <span id="L2403" class="LineNr">2403 </span> <span class="subxS1Comment"># . spill edx</span> <span id="L2404" class="LineNr">2404 </span> 52/push-edx -<span id="L2405" class="LineNr">2405 </span> <span class="subxS1Comment"># . var start/edx : (addr byte) = word-slice->start</span> +<span id="L2405" class="LineNr">2405 </span> <span class="subxS1Comment"># . var start/edx: (addr byte) = word-slice->start</span> <span id="L2406" class="LineNr">2406 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to edx</span> -<span id="L2407" class="LineNr">2407 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L2407" class="LineNr">2407 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L2408" class="LineNr">2408 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L2409" class="LineNr">2409 </span> 8a/copy-byte 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *edx to AL</span> <span id="L2410" class="LineNr">2410 </span> <span class="subxS1Comment"># . restore edx</span> @@ -2228,7 +2228,7 @@ if ('onhashchange' in window) { <span id="L2529" class="LineNr">2529 </span> 81 7/subop/compare 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/imm32/false <span class="subxComment"># compare edx</span> <span id="L2530" class="LineNr">2530 </span> 74/jump-if-= $emit-modrm:end/disp8 <span id="L2531" class="LineNr">2531 </span><span class="Constant">$emit-modrm:calculate</span>: -<span id="L2532" class="LineNr">2532 </span> <span class="subxComment"># var modrm/ebx : byte = mod & 0b11</span> +<span id="L2532" class="LineNr">2532 </span> <span class="subxComment"># var modrm/ebx: byte = mod & 0b11</span> <span id="L2533" class="LineNr">2533 </span> 81 4/subop/and 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/imm32/0b11 <span class="subxComment"># bitwise and of ebx</span> <span id="L2534" class="LineNr">2534 </span> <span class="subxComment"># modrm <<= 3</span> <span id="L2535" class="LineNr">2535 </span> c1/shift 4/subop/left 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/imm8 <span class="subxComment"># shift ebx left by 3 bits</span> @@ -2265,10 +2265,10 @@ if ('onhashchange' in window) { <span id="L2566" class="LineNr">2566 </span> 5d/pop-to-ebp <span id="L2567" class="LineNr">2567 </span> c3/return <span id="L2568" class="LineNr">2568 </span> -<span id="L2569" class="LineNr">2569 </span><span class="subxFunction">emit-sib</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L2569" class="LineNr">2569 </span><span class="subxFunction">emit-sib</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L2570" class="LineNr">2570 </span> <span class="subxComment"># pseudocode:</span> <span id="L2571" class="LineNr">2571 </span> <span class="subxComment"># var has-sib? = false, base = 0, index = 0, scale = 0</span> -<span id="L2572" class="LineNr">2572 </span> <span class="subxComment"># var word-slice : slice</span> +<span id="L2572" class="LineNr">2572 </span> <span class="subxComment"># var word-slice: slice</span> <span id="L2573" class="LineNr">2573 </span> <span class="subxComment"># while true</span> <span id="L2574" class="LineNr">2574 </span> <span class="subxComment"># word-slice = next-word(line)</span> <span id="L2575" class="LineNr">2575 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> @@ -2300,17 +2300,17 @@ if ('onhashchange' in window) { <span id="L2601" class="LineNr">2601 </span> 53/push-ebx <span id="L2602" class="LineNr">2602 </span> 56/push-esi <span id="L2603" class="LineNr">2603 </span> 57/push-edi -<span id="L2604" class="LineNr">2604 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L2604" class="LineNr">2604 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L2605" class="LineNr">2605 </span> 68/push 0/imm32/end <span id="L2606" class="LineNr">2606 </span> 68/push 0/imm32/start <span id="L2607" class="LineNr">2607 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> -<span id="L2608" class="LineNr">2608 </span> <span class="subxComment"># var has-sib?/edx : boolean = false</span> +<span id="L2608" class="LineNr">2608 </span> <span class="subxComment"># var has-sib?/edx: boolean = false</span> <span id="L2609" class="LineNr">2609 </span> 31/xor 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear edx</span> -<span id="L2610" class="LineNr">2610 </span> <span class="subxComment"># var scale/ebx : byte = 0</span> +<span id="L2610" class="LineNr">2610 </span> <span class="subxComment"># var scale/ebx: byte = 0</span> <span id="L2611" class="LineNr">2611 </span> 31/xor 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/r32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear ebx</span> -<span id="L2612" class="LineNr">2612 </span> <span class="subxComment"># var base/esi : byte = 0</span> +<span id="L2612" class="LineNr">2612 </span> <span class="subxComment"># var base/esi: byte = 0</span> <span id="L2613" class="LineNr">2613 </span> 31/xor 3/mod/direct 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear esi</span> -<span id="L2614" class="LineNr">2614 </span> <span class="subxComment"># var index/edi : byte = 0</span> +<span id="L2614" class="LineNr">2614 </span> <span class="subxComment"># var index/edi: byte = 0</span> <span id="L2615" class="LineNr">2615 </span> 31/xor 3/mod/direct 7/rm32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 7/r32/edi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear edi</span> <span id="L2616" class="LineNr">2616 </span> <span class="subxComment"># rewind-stream(line)</span> <span id="L2617" class="LineNr">2617 </span> <span class="subxS2Comment"># . . push args</span> @@ -2346,9 +2346,9 @@ if ('onhashchange' in window) { <span id="L2711" class="LineNr">2711 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) break</span> <span id="L2712" class="LineNr">2712 </span> <span class="subxS1Comment"># . spill edx</span> <span id="L2713" class="LineNr">2713 </span> 52/push-edx -<span id="L2714" class="LineNr">2714 </span> <span class="subxS1Comment"># . var start/edx : (addr byte) = word-slice->start</span> +<span id="L2714" class="LineNr">2714 </span> <span class="subxS1Comment"># . var start/edx: (addr byte) = word-slice->start</span> <span id="L2715" class="LineNr">2715 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to edx</span> -<span id="L2716" class="LineNr">2716 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L2716" class="LineNr">2716 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L2717" class="LineNr">2717 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L2718" class="LineNr">2718 </span> 8a/copy-byte 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *edx to AL</span> <span id="L2719" class="LineNr">2719 </span> <span class="subxS1Comment"># . restore edx</span> @@ -2445,7 +2445,7 @@ if ('onhashchange' in window) { <span id="L2810" class="LineNr">2810 </span> 81 7/subop/compare 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/imm32/false <span class="subxComment"># compare edx</span> <span id="L2811" class="LineNr">2811 </span> 74/jump-if-= $emit-sib:end/disp8 <span id="L2812" class="LineNr">2812 </span><span class="Constant">$emit-sib:calculate</span>: -<span id="L2813" class="LineNr">2813 </span> <span class="subxComment"># var sib/ebx : byte = scale & 0b11</span> +<span id="L2813" class="LineNr">2813 </span> <span class="subxComment"># var sib/ebx: byte = scale & 0b11</span> <span id="L2814" class="LineNr">2814 </span> 81 4/subop/and 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 3/imm32/0b11 <span class="subxComment"># bitwise and of ebx</span> <span id="L2815" class="LineNr">2815 </span> <span class="subxComment"># sib <<= 2</span> <span id="L2816" class="LineNr">2816 </span> c1/shift 4/subop/left 3/mod/direct 3/rm32/ebx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/imm8 <span class="subxComment"># shift ebx left by 2 bits</span> @@ -2482,10 +2482,10 @@ if ('onhashchange' in window) { <span id="L2847" class="LineNr">2847 </span> 5d/pop-to-ebp <span id="L2848" class="LineNr">2848 </span> c3/return <span id="L2849" class="LineNr">2849 </span> -<span id="L2850" class="LineNr">2850 </span><span class="subxFunction">emit-disp</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L2850" class="LineNr">2850 </span><span class="subxFunction">emit-disp</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L2851" class="LineNr">2851 </span> <span class="subxComment"># pseudocode:</span> <span id="L2852" class="LineNr">2852 </span> <span class="subxComment"># rewind-stream(line)</span> -<span id="L2853" class="LineNr">2853 </span> <span class="subxComment"># var word-slice : slice</span> +<span id="L2853" class="LineNr">2853 </span> <span class="subxComment"># var word-slice: slice</span> <span id="L2854" class="LineNr">2854 </span> <span class="subxComment"># while true</span> <span id="L2855" class="LineNr">2855 </span> <span class="subxComment"># word-slice = next-word(line)</span> <span id="L2856" class="LineNr">2856 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> @@ -2507,7 +2507,7 @@ if ('onhashchange' in window) { <span id="L2872" class="LineNr">2872 </span> 50/push-eax <span id="L2873" class="LineNr">2873 </span> 51/push-ecx <span id="L2874" class="LineNr">2874 </span> 52/push-edx -<span id="L2875" class="LineNr">2875 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L2875" class="LineNr">2875 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L2876" class="LineNr">2876 </span> 68/push 0/imm32/end <span id="L2877" class="LineNr">2877 </span> 68/push 0/imm32/start <span id="L2878" class="LineNr">2878 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> @@ -2543,9 +2543,9 @@ if ('onhashchange' in window) { <span id="L2972" class="LineNr">2972 </span> 0f 85/jump-if-!= $emit-disp:<span class="Constant">break</span>/disp32 <span id="L2973" class="LineNr">2973 </span><span class="Constant">$emit-disp:check1</span>: <span id="L2974" class="LineNr">2974 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) break</span> -<span id="L2975" class="LineNr">2975 </span> <span class="subxS1Comment"># . var start/edx : (addr byte) = word-slice->start</span> +<span id="L2975" class="LineNr">2975 </span> <span class="subxS1Comment"># . var start/edx: (addr byte) = word-slice->start</span> <span id="L2976" class="LineNr">2976 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to edx</span> -<span id="L2977" class="LineNr">2977 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L2977" class="LineNr">2977 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L2978" class="LineNr">2978 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L2979" class="LineNr">2979 </span> 8a/copy-byte 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *edx to AL</span> <span id="L2980" class="LineNr">2980 </span> <span class="subxS1Comment"># . if (c == '#') break</span> @@ -2637,10 +2637,10 @@ if ('onhashchange' in window) { <span id="L3066" class="LineNr">3066 </span> 5d/pop-to-ebp <span id="L3067" class="LineNr">3067 </span> c3/return <span id="L3068" class="LineNr">3068 </span> -<span id="L3069" class="LineNr">3069 </span><span class="subxFunction">emit-imm</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L3069" class="LineNr">3069 </span><span class="subxFunction">emit-imm</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L3070" class="LineNr">3070 </span> <span class="subxComment"># pseudocode:</span> <span id="L3071" class="LineNr">3071 </span> <span class="subxComment"># rewind-stream(line)</span> -<span id="L3072" class="LineNr">3072 </span> <span class="subxComment"># var word-slice : slice</span> +<span id="L3072" class="LineNr">3072 </span> <span class="subxComment"># var word-slice: slice</span> <span id="L3073" class="LineNr">3073 </span> <span class="subxComment"># while true</span> <span id="L3074" class="LineNr">3074 </span> <span class="subxComment"># word-slice = next-word(line)</span> <span id="L3075" class="LineNr">3075 </span> <span class="subxComment"># if (slice-empty?(word-slice)) break</span> @@ -2662,7 +2662,7 @@ if ('onhashchange' in window) { <span id="L3091" class="LineNr">3091 </span> 50/push-eax <span id="L3092" class="LineNr">3092 </span> 51/push-ecx <span id="L3093" class="LineNr">3093 </span> 52/push-edx -<span id="L3094" class="LineNr">3094 </span> <span class="subxComment"># var word-slice/ecx : slice</span> +<span id="L3094" class="LineNr">3094 </span> <span class="subxComment"># var word-slice/ecx: slice</span> <span id="L3095" class="LineNr">3095 </span> 68/push 0/imm32/end <span id="L3096" class="LineNr">3096 </span> 68/push 0/imm32/start <span id="L3097" class="LineNr">3097 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> @@ -2698,9 +2698,9 @@ if ('onhashchange' in window) { <span id="L3191" class="LineNr">3191 </span> 0f 85/jump-if-!= $emit-imm:<span class="Constant">break</span>/disp32 <span id="L3192" class="LineNr">3192 </span><span class="Constant">$emit-imm:check1</span>: <span id="L3193" class="LineNr">3193 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) break</span> -<span id="L3194" class="LineNr">3194 </span> <span class="subxS1Comment"># . var start/edx : (addr byte) = slice->start</span> +<span id="L3194" class="LineNr">3194 </span> <span class="subxS1Comment"># . var start/edx: (addr byte) = slice->start</span> <span id="L3195" class="LineNr">3195 </span> 8b/copy 0/mod/indirect 1/rm32/ecx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to edx</span> -<span id="L3196" class="LineNr">3196 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> +<span id="L3196" class="LineNr">3196 </span> <span class="subxS1Comment"># . var c/eax: byte = *start</span> <span id="L3197" class="LineNr">3197 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> <span id="L3198" class="LineNr">3198 </span> 8a/copy-byte 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/AL <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy byte at *edx to AL</span> <span id="L3199" class="LineNr">3199 </span> <span class="subxS1Comment"># . if (c == '#') break</span> @@ -2792,7 +2792,7 @@ if ('onhashchange' in window) { <span id="L3285" class="LineNr">3285 </span> 5d/pop-to-ebp <span id="L3286" class="LineNr">3286 </span> c3/return <span id="L3287" class="LineNr">3287 </span> -<span id="L3288" class="LineNr">3288 </span><span class="subxFunction">emit-line-in-comment</span>: <span class="subxComment"># line : (addr stream byte), out : (addr buffered-file)</span> +<span id="L3288" class="LineNr">3288 </span><span class="subxFunction">emit-line-in-comment</span>: <span class="subxComment"># line: (addr stream byte), out: (addr buffered-file)</span> <span id="L3289" class="LineNr">3289 </span> <span class="subxS1Comment"># . prologue</span> <span id="L3290" class="LineNr">3290 </span> 55/push-ebp <span id="L3291" class="LineNr">3291 </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> @@ -4694,7 +4694,7 @@ if ('onhashchange' in window) { <span id="L5837" class="LineNr">5837 </span> c3/return <span id="L5838" class="LineNr">5838 </span> <span id="L5839" class="LineNr">5839 </span><span class="subxComment"># shortcut for parse-hex-int(next-token-from-slice(word->start, word->end, '/'))</span> -<span id="L5840" class="LineNr">5840 </span><span class="subxFunction">parse-datum-of-word</span>: <span class="subxComment"># word : (addr slice) -> value/eax : int</span> +<span id="L5840" class="LineNr">5840 </span><span class="subxFunction">parse-datum-of-word</span>: <span class="subxComment"># word: (addr slice) -> value/eax: int</span> <span id="L5841" class="LineNr">5841 </span> <span class="subxS1Comment"># . prologue</span> <span id="L5842" class="LineNr">5842 </span> 55/push-ebp <span id="L5843" class="LineNr">5843 </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> @@ -4703,7 +4703,7 @@ if ('onhashchange' in window) { <span id="L5846" class="LineNr">5846 </span> 56/push-esi <span id="L5847" class="LineNr">5847 </span> <span class="subxComment"># esi = word</span> <span id="L5848" class="LineNr">5848 </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="L5849" class="LineNr">5849 </span> <span class="subxComment"># var slice/ecx : slice</span> +<span id="L5849" class="LineNr">5849 </span> <span class="subxComment"># var slice/ecx: slice</span> <span id="L5850" class="LineNr">5850 </span> 68/push 0/imm32/end <span id="L5851" class="LineNr">5851 </span> 68/push 0/imm32/start <span id="L5852" class="LineNr">5852 </span> 89/copy 3/mod/direct 1/rm32/ecx <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 ecx</span> |