about summary refs log tree commit diff stats
path: root/html/apps/pack.subx.html
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-06-21 17:13:21 -0700
committerKartik Agaram <vc@akkartik.com>2020-06-21 17:13:21 -0700
commit47fe226b7e5841d25b3392f40bb3698d405e39f2 (patch)
treeb307579d14ed0dbd72b7d59f45c23838ebb7f05a /html/apps/pack.subx.html
parent6bfb565819288770eea9b0cfe1f7a44abd8a45d1 (diff)
downloadmu-47fe226b7e5841d25b3392f40bb3698d405e39f2.tar.gz
6571
Diffstat (limited to 'html/apps/pack.subx.html')
-rw-r--r--html/apps/pack.subx.html549
1 files changed, 308 insertions, 241 deletions
diff --git a/html/apps/pack.subx.html b/html/apps/pack.subx.html
index a181b332..308f2031 100644
--- a/html/apps/pack.subx.html
+++ b/html/apps/pack.subx.html
@@ -2121,7 +2121,7 @@ if ('onhashchange' in window) {
 <span id="L2422" class="LineNr">2422 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2423" class="LineNr">2423 </span>    51/push-ecx
 <span id="L2424" class="LineNr">2424 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2425" class="LineNr">2425 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2425" class="LineNr">2425 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2426" class="LineNr">2426 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2427" class="LineNr">2427 </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="L2428" class="LineNr">2428 </span>    <span class="subxS1Comment"># . mod = eax</span>
@@ -2149,7 +2149,7 @@ if ('onhashchange' in window) {
 <span id="L2450" class="LineNr">2450 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2451" class="LineNr">2451 </span>    51/push-ecx
 <span id="L2452" class="LineNr">2452 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2453" class="LineNr">2453 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2453" class="LineNr">2453 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2454" class="LineNr">2454 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2455" class="LineNr">2455 </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="L2456" class="LineNr">2456 </span>    <span class="subxS1Comment"># . rm32 = eax</span>
@@ -2177,7 +2177,7 @@ if ('onhashchange' in window) {
 <span id="L2478" class="LineNr">2478 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2479" class="LineNr">2479 </span>    51/push-ecx
 <span id="L2480" class="LineNr">2480 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2481" class="LineNr">2481 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2481" class="LineNr">2481 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2482" class="LineNr">2482 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2483" class="LineNr">2483 </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="L2484" class="LineNr">2484 </span>    <span class="subxS1Comment"># . r32 = eax</span>
@@ -2205,7 +2205,7 @@ if ('onhashchange' in window) {
 <span id="L2506" class="LineNr">2506 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2507" class="LineNr">2507 </span>    51/push-ecx
 <span id="L2508" class="LineNr">2508 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2509" class="LineNr">2509 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2509" class="LineNr">2509 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2510" class="LineNr">2510 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2511" class="LineNr">2511 </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="L2512" class="LineNr">2512 </span>    <span class="subxS1Comment"># . r32 = eax</span>
@@ -2275,7 +2275,7 @@ if ('onhashchange' in window) {
 <span id="L2576" class="LineNr">2576 </span>    <span class="subxComment">#       has-sib? = true</span>
 <span id="L2577" class="LineNr">2577 </span>    <span class="subxComment">#   if has-sib?</span>
 <span id="L2578" class="LineNr">2578 </span>    <span class="subxComment">#     var sib = scale &amp; 0b11</span>
-<span id="L2579" class="LineNr">2579 </span>    <span class="subxComment">#     sib &lt;&lt;= 2</span>
+<span id="L2579" class="LineNr">2579 </span>    <span class="subxComment">#     sib &lt;&lt;= 3</span>
 <span id="L2580" class="LineNr">2580 </span>    <span class="subxComment">#     sib |= index &amp; 0b111</span>
 <span id="L2581" class="LineNr">2581 </span>    <span class="subxComment">#     sib &lt;&lt;= 3</span>
 <span id="L2582" class="LineNr">2582 </span>    <span class="subxComment">#     sib |= base &amp; 0b111</span>
@@ -2366,7 +2366,7 @@ if ('onhashchange' in window) {
 <span id="L2731" class="LineNr">2731 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2732" class="LineNr">2732 </span>    51/push-ecx
 <span id="L2733" class="LineNr">2733 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2734" class="LineNr">2734 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2734" class="LineNr">2734 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2735" class="LineNr">2735 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2736" class="LineNr">2736 </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="L2737" class="LineNr">2737 </span>    <span class="subxS1Comment"># . scale = eax</span>
@@ -2394,7 +2394,7 @@ if ('onhashchange' in window) {
 <span id="L2759" class="LineNr">2759 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2760" class="LineNr">2760 </span>    51/push-ecx
 <span id="L2761" class="LineNr">2761 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2762" class="LineNr">2762 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2762" class="LineNr">2762 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2763" class="LineNr">2763 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2764" class="LineNr">2764 </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="L2765" class="LineNr">2765 </span>    <span class="subxS1Comment"># . base = eax</span>
@@ -2422,7 +2422,7 @@ if ('onhashchange' in window) {
 <span id="L2787" class="LineNr">2787 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L2788" class="LineNr">2788 </span>    51/push-ecx
 <span id="L2789" class="LineNr">2789 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L2790" class="LineNr">2790 </span>    e8/call  <a href='pack.subx.html#L5831'>parse-datum-of-word</a>/disp32
+<span id="L2790" class="LineNr">2790 </span>    e8/call  <a href='pack.subx.html#L5923'>parse-datum-of-word</a>/disp32
 <span id="L2791" class="LineNr">2791 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L2792" class="LineNr">2792 </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="L2793" class="LineNr">2793 </span>    <span class="subxS1Comment"># . index = eax</span>
@@ -2439,7 +2439,7 @@ if ('onhashchange' in window) {
 <span id="L2804" class="LineNr">2804 </span>    <span class="subxComment"># var sib/ebx: byte = scale &amp; 0b11</span>
 <span id="L2805" class="LineNr">2805 </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="L2806" class="LineNr">2806 </span>    <span class="subxComment"># sib &lt;&lt;= 2</span>
-<span id="L2807" class="LineNr">2807 </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>
+<span id="L2807" class="LineNr">2807 </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>
 <span id="L2808" class="LineNr">2808 </span>    <span class="subxComment"># sib |= index &amp; 0b111</span>
 <span id="L2809" class="LineNr">2809 </span>    81          4/subop/and         3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              7/imm32/0b111     <span class="subxComment"># bitwise and of edi</span>
 <span id="L2810" class="LineNr">2810 </span>    09/or                           3/mod/direct    3/rm32/ebx   <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"># ebx = bitwise OR with edi</span>
@@ -4012,8 +4012,8 @@ if ('onhashchange' in window) {
 <span id="L4905" class="LineNr">4905 </span>    5d/pop-to-ebp
 <span id="L4906" class="LineNr">4906 </span>    c3/return
 <span id="L4907" class="LineNr">4907 </span>
-<span id="L4908" class="LineNr">4908 </span><span class="subxTest">test-convert-instruction-emits-sib-byte-with-missing-base</span>:
-<span id="L4909" class="LineNr">4909 </span>    <span class="subxComment"># pack index and scale operands into SIB byte</span>
+<span id="L4908" class="LineNr">4908 </span><span class="subxTest">test-convert-instruction-emits-scale</span>:
+<span id="L4909" class="LineNr">4909 </span>    <span class="subxComment"># pack base, index and scale operands into SIB byte</span>
 <span id="L4910" class="LineNr">4910 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L4911" class="LineNr">4911 </span>    55/push-ebp
 <span id="L4912" class="LineNr">4912 </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>
@@ -4040,9 +4040,9 @@ if ('onhashchange' in window) {
 <span id="L4933" class="LineNr">4933 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L4934" class="LineNr">4934 </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="L4935" class="LineNr">4935 </span>    <span class="subxComment"># initialize input</span>
-<span id="L4936" class="LineNr">4936 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;)</span>
+<span id="L4936" class="LineNr">4936 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/scale&quot;)</span>
 <span id="L4937" class="LineNr">4937 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L4938" class="LineNr">4938 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;</span>/imm32
+<span id="L4938" class="LineNr">4938 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/scale&quot;</span>/imm32
 <span id="L4939" class="LineNr">4939 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L4940" class="LineNr">4940 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L4941" class="LineNr">4941 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4065,10 +4065,10 @@ if ('onhashchange' in window) {
 <span id="L4958" class="LineNr">4958 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L4959" class="LineNr">4959 </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="L4960" class="Folded">4960 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L4986" class="LineNr">4986 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;, msg)</span>
+<span id="L4986" class="LineNr">4986 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 04 40  # 8b/copy 0/mod 4/rm32 1/scale&quot;, msg)</span>
 <span id="L4987" class="LineNr">4987 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L4988" class="LineNr">4988 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-sib-byte-with-missing-base&quot;</span>/imm32
-<span id="L4989" class="LineNr">4989 </span>    68/push  <span class="Constant">&quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;</span>/imm32
+<span id="L4988" class="LineNr">4988 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-scale&quot;</span>/imm32
+<span id="L4989" class="LineNr">4989 </span>    68/push  <span class="Constant">&quot;8b 04 40  # 8b/copy 0/mod 4/rm32 1/scale&quot;</span>/imm32
 <span id="L4990" class="LineNr">4990 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L4991" class="LineNr">4991 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L4992" class="LineNr">4992 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4079,8 +4079,8 @@ if ('onhashchange' in window) {
 <span id="L4997" class="LineNr">4997 </span>    5d/pop-to-ebp
 <span id="L4998" class="LineNr">4998 </span>    c3/return
 <span id="L4999" class="LineNr">4999 </span>
-<span id="L5000" class="LineNr">5000 </span><span class="subxTest">test-convert-instruction-emits-sib-byte-with-missing-index</span>:
-<span id="L5001" class="LineNr">5001 </span>    <span class="subxComment"># pack base and scale operands into SIB byte</span>
+<span id="L5000" class="LineNr">5000 </span><span class="subxTest">test-convert-instruction-emits-sib-byte-with-missing-base</span>:
+<span id="L5001" class="LineNr">5001 </span>    <span class="subxComment"># pack index and scale operands into SIB byte</span>
 <span id="L5002" class="LineNr">5002 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5003" class="LineNr">5003 </span>    55/push-ebp
 <span id="L5004" class="LineNr">5004 </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>
@@ -4107,9 +4107,9 @@ if ('onhashchange' in window) {
 <span id="L5025" class="LineNr">5025 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5026" class="LineNr">5026 </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="L5027" class="LineNr">5027 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5028" class="LineNr">5028 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;)</span>
+<span id="L5028" class="LineNr">5028 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;)</span>
 <span id="L5029" class="LineNr">5029 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5030" class="LineNr">5030 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;</span>/imm32
+<span id="L5030" class="LineNr">5030 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;</span>/imm32
 <span id="L5031" class="LineNr">5031 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5032" class="LineNr">5032 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5033" class="LineNr">5033 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4132,10 +4132,10 @@ if ('onhashchange' in window) {
 <span id="L5050" class="LineNr">5050 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5051" class="LineNr">5051 </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="L5052" class="Folded">5052 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5078" class="LineNr">5078 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;, msg)</span>
+<span id="L5078" class="LineNr">5078 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;, msg)</span>
 <span id="L5079" class="LineNr">5079 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5080" class="LineNr">5080 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-sib-byte-with-missing-index&quot;</span>/imm32
-<span id="L5081" class="LineNr">5081 </span>    68/push  <span class="Constant">&quot;8b 0c 00  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;</span>/imm32
+<span id="L5080" class="LineNr">5080 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-sib-byte-with-missing-base&quot;</span>/imm32
+<span id="L5081" class="LineNr">5081 </span>    68/push  <span class="Constant">&quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale&quot;</span>/imm32
 <span id="L5082" class="LineNr">5082 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5083" class="LineNr">5083 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5084" class="LineNr">5084 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4146,8 +4146,8 @@ if ('onhashchange' in window) {
 <span id="L5089" class="LineNr">5089 </span>    5d/pop-to-ebp
 <span id="L5090" class="LineNr">5090 </span>    c3/return
 <span id="L5091" class="LineNr">5091 </span>
-<span id="L5092" class="LineNr">5092 </span><span class="subxTest">test-convert-instruction-emits-sib-byte-with-missing-scale</span>:
-<span id="L5093" class="LineNr">5093 </span>    <span class="subxComment"># pack base and index operands into SIB byte</span>
+<span id="L5092" class="LineNr">5092 </span><span class="subxTest">test-convert-instruction-emits-sib-byte-with-missing-index</span>:
+<span id="L5093" class="LineNr">5093 </span>    <span class="subxComment"># pack base and scale operands into SIB byte</span>
 <span id="L5094" class="LineNr">5094 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5095" class="LineNr">5095 </span>    55/push-ebp
 <span id="L5096" class="LineNr">5096 </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>
@@ -4174,9 +4174,9 @@ if ('onhashchange' in window) {
 <span id="L5117" class="LineNr">5117 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5118" class="LineNr">5118 </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="L5119" class="LineNr">5119 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5120" class="LineNr">5120 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;)</span>
+<span id="L5120" class="LineNr">5120 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;)</span>
 <span id="L5121" class="LineNr">5121 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5122" class="LineNr">5122 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;</span>/imm32
+<span id="L5122" class="LineNr">5122 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;</span>/imm32
 <span id="L5123" class="LineNr">5123 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5124" class="LineNr">5124 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5125" class="LineNr">5125 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4199,10 +4199,10 @@ if ('onhashchange' in window) {
 <span id="L5142" class="LineNr">5142 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5143" class="LineNr">5143 </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="L5144" class="Folded">5144 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5170" class="LineNr">5170 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;, msg)</span>
+<span id="L5170" class="LineNr">5170 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;, msg)</span>
 <span id="L5171" class="LineNr">5171 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5172" class="LineNr">5172 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-sib-byte-with-missing-scale&quot;</span>/imm32
-<span id="L5173" class="LineNr">5173 </span>    68/push  <span class="Constant">&quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;</span>/imm32
+<span id="L5172" class="LineNr">5172 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-sib-byte-with-missing-index&quot;</span>/imm32
+<span id="L5173" class="LineNr">5173 </span>    68/push  <span class="Constant">&quot;8b 0c 00  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale&quot;</span>/imm32
 <span id="L5174" class="LineNr">5174 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5175" class="LineNr">5175 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5176" class="LineNr">5176 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4213,8 +4213,8 @@ if ('onhashchange' in window) {
 <span id="L5181" class="LineNr">5181 </span>    5d/pop-to-ebp
 <span id="L5182" class="LineNr">5182 </span>    c3/return
 <span id="L5183" class="LineNr">5183 </span>
-<span id="L5184" class="LineNr">5184 </span><span class="subxTest">test-convert-instruction-handles-disp32-operand</span>:
-<span id="L5185" class="LineNr">5185 </span>    <span class="subxComment"># expand /disp32 operand into 4 bytes</span>
+<span id="L5184" class="LineNr">5184 </span><span class="subxTest">test-convert-instruction-emits-sib-byte-with-missing-scale</span>:
+<span id="L5185" class="LineNr">5185 </span>    <span class="subxComment"># pack base and index operands into SIB byte</span>
 <span id="L5186" class="LineNr">5186 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5187" class="LineNr">5187 </span>    55/push-ebp
 <span id="L5188" class="LineNr">5188 </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>
@@ -4241,9 +4241,9 @@ if ('onhashchange' in window) {
 <span id="L5209" class="LineNr">5209 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5210" class="LineNr">5210 </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="L5211" class="LineNr">5211 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5212" class="LineNr">5212 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;e8/call 20/disp32&quot;)</span>
+<span id="L5212" class="LineNr">5212 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;)</span>
 <span id="L5213" class="LineNr">5213 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5214" class="LineNr">5214 </span>    68/push  <span class="Constant">&quot;e8/call 20/disp32&quot;</span>/imm32
+<span id="L5214" class="LineNr">5214 </span>    68/push  <span class="Constant">&quot;8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;</span>/imm32
 <span id="L5215" class="LineNr">5215 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5216" class="LineNr">5216 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5217" class="LineNr">5217 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4266,10 +4266,10 @@ if ('onhashchange' in window) {
 <span id="L5234" class="LineNr">5234 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5235" class="LineNr">5235 </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="L5236" class="Folded">5236 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5262" class="LineNr">5262 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;e8 20 00 00 00  # e8/call 20/disp32&quot;, msg)</span>
+<span id="L5262" class="LineNr">5262 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;, msg)</span>
 <span id="L5263" class="LineNr">5263 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5264" class="LineNr">5264 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp32-operand&quot;</span>/imm32
-<span id="L5265" class="LineNr">5265 </span>    68/push  <span class="Constant">&quot;e8 20 00 00 00  # e8/call 20/disp32&quot;</span>/imm32
+<span id="L5264" class="LineNr">5264 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-emits-sib-byte-with-missing-scale&quot;</span>/imm32
+<span id="L5265" class="LineNr">5265 </span>    68/push  <span class="Constant">&quot;8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index&quot;</span>/imm32
 <span id="L5266" class="LineNr">5266 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5267" class="LineNr">5267 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5268" class="LineNr">5268 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4280,8 +4280,8 @@ if ('onhashchange' in window) {
 <span id="L5273" class="LineNr">5273 </span>    5d/pop-to-ebp
 <span id="L5274" class="LineNr">5274 </span>    c3/return
 <span id="L5275" class="LineNr">5275 </span>
-<span id="L5276" class="LineNr">5276 </span><span class="subxTest">test-convert-instruction-handles-disp16-operand</span>:
-<span id="L5277" class="LineNr">5277 </span>    <span class="subxComment"># expand /disp16 operand into 2 bytes</span>
+<span id="L5276" class="LineNr">5276 </span><span class="subxTest">test-convert-instruction-handles-disp32-operand</span>:
+<span id="L5277" class="LineNr">5277 </span>    <span class="subxComment"># expand /disp32 operand into 4 bytes</span>
 <span id="L5278" class="LineNr">5278 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5279" class="LineNr">5279 </span>    55/push-ebp
 <span id="L5280" class="LineNr">5280 </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>
@@ -4308,9 +4308,9 @@ if ('onhashchange' in window) {
 <span id="L5301" class="LineNr">5301 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5302" class="LineNr">5302 </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="L5303" class="LineNr">5303 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5304" class="LineNr">5304 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;e8/call 20/disp16&quot;)</span>
+<span id="L5304" class="LineNr">5304 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;e8/call 20/disp32&quot;)</span>
 <span id="L5305" class="LineNr">5305 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5306" class="LineNr">5306 </span>    68/push  <span class="Constant">&quot;e8/call 20/disp16&quot;</span>/imm32  <span class="subxComment"># not a valid instruction</span>
+<span id="L5306" class="LineNr">5306 </span>    68/push  <span class="Constant">&quot;e8/call 20/disp32&quot;</span>/imm32
 <span id="L5307" class="LineNr">5307 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5308" class="LineNr">5308 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5309" class="LineNr">5309 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4333,10 +4333,10 @@ if ('onhashchange' in window) {
 <span id="L5326" class="LineNr">5326 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5327" class="LineNr">5327 </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="L5328" class="Folded">5328 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5354" class="LineNr">5354 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;e8 20 00  # e8/call 20/disp16&quot;, msg)</span>
+<span id="L5354" class="LineNr">5354 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;e8 20 00 00 00  # e8/call 20/disp32&quot;, msg)</span>
 <span id="L5355" class="LineNr">5355 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5356" class="LineNr">5356 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp16-operand&quot;</span>/imm32
-<span id="L5357" class="LineNr">5357 </span>    68/push  <span class="Constant">&quot;e8 20 00  # e8/call 20/disp16&quot;</span>/imm32
+<span id="L5356" class="LineNr">5356 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp32-operand&quot;</span>/imm32
+<span id="L5357" class="LineNr">5357 </span>    68/push  <span class="Constant">&quot;e8 20 00 00 00  # e8/call 20/disp32&quot;</span>/imm32
 <span id="L5358" class="LineNr">5358 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5359" class="LineNr">5359 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5360" class="LineNr">5360 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4347,8 +4347,8 @@ if ('onhashchange' in window) {
 <span id="L5365" class="LineNr">5365 </span>    5d/pop-to-ebp
 <span id="L5366" class="LineNr">5366 </span>    c3/return
 <span id="L5367" class="LineNr">5367 </span>
-<span id="L5368" class="LineNr">5368 </span><span class="subxTest">test-convert-instruction-handles-disp8-operand</span>:
-<span id="L5369" class="LineNr">5369 </span>    <span class="subxComment"># expand /disp8 operand into 1 byte</span>
+<span id="L5368" class="LineNr">5368 </span><span class="subxTest">test-convert-instruction-handles-disp16-operand</span>:
+<span id="L5369" class="LineNr">5369 </span>    <span class="subxComment"># expand /disp16 operand into 2 bytes</span>
 <span id="L5370" class="LineNr">5370 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5371" class="LineNr">5371 </span>    55/push-ebp
 <span id="L5372" class="LineNr">5372 </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>
@@ -4375,9 +4375,9 @@ if ('onhashchange' in window) {
 <span id="L5393" class="LineNr">5393 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5394" class="LineNr">5394 </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="L5395" class="LineNr">5395 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5396" class="LineNr">5396 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;eb/jump 20/disp8&quot;)</span>
+<span id="L5396" class="LineNr">5396 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;e8/call 20/disp16&quot;)</span>
 <span id="L5397" class="LineNr">5397 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5398" class="LineNr">5398 </span>    68/push  <span class="Constant">&quot;eb/jump 20/disp8&quot;</span>/imm32
+<span id="L5398" class="LineNr">5398 </span>    68/push  <span class="Constant">&quot;e8/call 20/disp16&quot;</span>/imm32  <span class="subxComment"># not a valid instruction</span>
 <span id="L5399" class="LineNr">5399 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5400" class="LineNr">5400 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5401" class="LineNr">5401 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4400,10 +4400,10 @@ if ('onhashchange' in window) {
 <span id="L5418" class="LineNr">5418 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5419" class="LineNr">5419 </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="L5420" class="Folded">5420 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5446" class="LineNr">5446 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;eb 20  # eb/jump 20/disp8&quot;, msg)</span>
+<span id="L5446" class="LineNr">5446 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;e8 20 00  # e8/call 20/disp16&quot;, msg)</span>
 <span id="L5447" class="LineNr">5447 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5448" class="LineNr">5448 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp8-operand&quot;</span>/imm32
-<span id="L5449" class="LineNr">5449 </span>    68/push  <span class="Constant">&quot;eb 20  # eb/jump 20/disp8&quot;</span>/imm32
+<span id="L5448" class="LineNr">5448 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp16-operand&quot;</span>/imm32
+<span id="L5449" class="LineNr">5449 </span>    68/push  <span class="Constant">&quot;e8 20 00  # e8/call 20/disp16&quot;</span>/imm32
 <span id="L5450" class="LineNr">5450 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5451" class="LineNr">5451 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5452" class="LineNr">5452 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4414,8 +4414,8 @@ if ('onhashchange' in window) {
 <span id="L5457" class="LineNr">5457 </span>    5d/pop-to-ebp
 <span id="L5458" class="LineNr">5458 </span>    c3/return
 <span id="L5459" class="LineNr">5459 </span>
-<span id="L5460" class="LineNr">5460 </span><span class="subxTest">test-convert-instruction-handles-disp8-name</span>:
-<span id="L5461" class="LineNr">5461 </span>    <span class="subxComment"># pass /disp8 name directly through</span>
+<span id="L5460" class="LineNr">5460 </span><span class="subxTest">test-convert-instruction-handles-disp8-operand</span>:
+<span id="L5461" class="LineNr">5461 </span>    <span class="subxComment"># expand /disp8 operand into 1 byte</span>
 <span id="L5462" class="LineNr">5462 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5463" class="LineNr">5463 </span>    55/push-ebp
 <span id="L5464" class="LineNr">5464 </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>
@@ -4442,9 +4442,9 @@ if ('onhashchange' in window) {
 <span id="L5485" class="LineNr">5485 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5486" class="LineNr">5486 </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="L5487" class="LineNr">5487 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5488" class="LineNr">5488 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;eb/jump xyz/disp8&quot;)</span>
+<span id="L5488" class="LineNr">5488 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;eb/jump 20/disp8&quot;)</span>
 <span id="L5489" class="LineNr">5489 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5490" class="LineNr">5490 </span>    68/push  <span class="Constant">&quot;eb/jump xyz/disp8&quot;</span>/imm32
+<span id="L5490" class="LineNr">5490 </span>    68/push  <span class="Constant">&quot;eb/jump 20/disp8&quot;</span>/imm32
 <span id="L5491" class="LineNr">5491 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5492" class="LineNr">5492 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5493" class="LineNr">5493 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4467,10 +4467,10 @@ if ('onhashchange' in window) {
 <span id="L5510" class="LineNr">5510 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5511" class="LineNr">5511 </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="L5512" class="Folded">5512 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5538" class="LineNr">5538 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;eb xyz/disp8  # eb/jump xyz/disp8&quot;, msg)</span>
+<span id="L5538" class="LineNr">5538 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;eb 20  # eb/jump 20/disp8&quot;, msg)</span>
 <span id="L5539" class="LineNr">5539 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5540" class="LineNr">5540 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp8-name&quot;</span>/imm32
-<span id="L5541" class="LineNr">5541 </span>    68/push  <span class="Constant">&quot;eb xyz/disp8  # eb/jump xyz/disp8&quot;</span>/imm32
+<span id="L5540" class="LineNr">5540 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp8-operand&quot;</span>/imm32
+<span id="L5541" class="LineNr">5541 </span>    68/push  <span class="Constant">&quot;eb 20  # eb/jump 20/disp8&quot;</span>/imm32
 <span id="L5542" class="LineNr">5542 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5543" class="LineNr">5543 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5544" class="LineNr">5544 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4481,8 +4481,8 @@ if ('onhashchange' in window) {
 <span id="L5549" class="LineNr">5549 </span>    5d/pop-to-ebp
 <span id="L5550" class="LineNr">5550 </span>    c3/return
 <span id="L5551" class="LineNr">5551 </span>
-<span id="L5552" class="LineNr">5552 </span><span class="subxTest">test-convert-instruction-handles-imm32-operand</span>:
-<span id="L5553" class="LineNr">5553 </span>    <span class="subxComment"># expand /imm32 operand into 4 bytes</span>
+<span id="L5552" class="LineNr">5552 </span><span class="subxTest">test-convert-instruction-handles-disp8-name</span>:
+<span id="L5553" class="LineNr">5553 </span>    <span class="subxComment"># pass /disp8 name directly through</span>
 <span id="L5554" class="LineNr">5554 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5555" class="LineNr">5555 </span>    55/push-ebp
 <span id="L5556" class="LineNr">5556 </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>
@@ -4509,9 +4509,9 @@ if ('onhashchange' in window) {
 <span id="L5577" class="LineNr">5577 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5578" class="LineNr">5578 </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="L5579" class="LineNr">5579 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5580" class="LineNr">5580 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;68/push 0x20/imm32&quot;)</span>
+<span id="L5580" class="LineNr">5580 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;eb/jump xyz/disp8&quot;)</span>
 <span id="L5581" class="LineNr">5581 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5582" class="LineNr">5582 </span>    68/push  <span class="Constant">&quot;68/push 0x20/imm32&quot;</span>/imm32
+<span id="L5582" class="LineNr">5582 </span>    68/push  <span class="Constant">&quot;eb/jump xyz/disp8&quot;</span>/imm32
 <span id="L5583" class="LineNr">5583 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
 <span id="L5584" class="LineNr">5584 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5585" class="LineNr">5585 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
@@ -4534,10 +4534,10 @@ if ('onhashchange' in window) {
 <span id="L5602" class="LineNr">5602 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L5603" class="LineNr">5603 </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="L5604" class="Folded">5604 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5630" class="LineNr">5630 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;68 20 00 00 00  # 68/push 0x20/imm32&quot;, msg)</span>
+<span id="L5630" class="LineNr">5630 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;eb xyz/disp8  # eb/jump xyz/disp8&quot;, msg)</span>
 <span id="L5631" class="LineNr">5631 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5632" class="LineNr">5632 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-imm32-operand&quot;</span>/imm32
-<span id="L5633" class="LineNr">5633 </span>    68/push  <span class="Constant">&quot;68 20 00 00 00  # 68/push 0x20/imm32&quot;</span>/imm32
+<span id="L5632" class="LineNr">5632 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-disp8-name&quot;</span>/imm32
+<span id="L5633" class="LineNr">5633 </span>    68/push  <span class="Constant">&quot;eb xyz/disp8  # eb/jump xyz/disp8&quot;</span>/imm32
 <span id="L5634" class="LineNr">5634 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
 <span id="L5635" class="LineNr">5635 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L5636" class="LineNr">5636 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
@@ -4548,185 +4548,252 @@ if ('onhashchange' in window) {
 <span id="L5641" class="LineNr">5641 </span>    5d/pop-to-ebp
 <span id="L5642" class="LineNr">5642 </span>    c3/return
 <span id="L5643" class="LineNr">5643 </span>
-<span id="L5644" class="LineNr">5644 </span><span class="subxTest">test-convert-instruction-handles-imm16-operand</span>:
-<span id="L5645" class="LineNr">5645 </span>    <span class="subxComment"># expand /imm16 operand into 2 bytes</span>
-<span id="L5646" class="LineNr">5646 </span>    <span class="subxComment"># we don't have one of these at the moment, so this expands to an invalid instruction</span>
-<span id="L5647" class="LineNr">5647 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L5648" class="LineNr">5648 </span>    55/push-ebp
-<span id="L5649" class="LineNr">5649 </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="L5650" class="LineNr">5650 </span>    <span class="subxComment"># setup</span>
-<span id="L5651" class="LineNr">5651 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
-<span id="L5652" class="LineNr">5652 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5653" class="LineNr">5653 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
-<span id="L5654" class="LineNr">5654 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5655" class="LineNr">5655 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L5656" class="LineNr">5656 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5657" class="LineNr">5657 </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="L5658" class="LineNr">5658 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L5659" class="LineNr">5659 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5660" class="LineNr">5660 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
-<span id="L5661" class="LineNr">5661 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5662" class="LineNr">5662 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L5663" class="LineNr">5663 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5664" class="LineNr">5664 </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="L5665" class="LineNr">5665 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
-<span id="L5666" class="LineNr">5666 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5667" class="LineNr">5667 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
-<span id="L5668" class="LineNr">5668 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5669" class="LineNr">5669 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L5670" class="LineNr">5670 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5671" class="LineNr">5671 </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="L5672" class="LineNr">5672 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5673" class="LineNr">5673 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;68/push 0x20/imm16&quot;)</span>
-<span id="L5674" class="LineNr">5674 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5675" class="LineNr">5675 </span>    68/push  <span class="Constant">&quot;68/push 0x20/imm16&quot;</span>/imm32  <span class="subxComment"># not a valid instruction</span>
-<span id="L5676" class="LineNr">5676 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
-<span id="L5677" class="LineNr">5677 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5678" class="LineNr">5678 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L5679" class="LineNr">5679 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5680" class="LineNr">5680 </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="L5681" class="LineNr">5681 </span>    <span class="subxComment"># convert-instruction(_test-input-stream, _test-output-buffered-file)</span>
-<span id="L5682" class="LineNr">5682 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5683" class="LineNr">5683 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
-<span id="L5684" class="LineNr">5684 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
-<span id="L5685" class="LineNr">5685 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5686" class="LineNr">5686 </span>    e8/call  <a href='pack.subx.html#L1803'>convert-instruction</a>/disp32
-<span id="L5687" class="LineNr">5687 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5688" class="LineNr">5688 </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="L5689" class="LineNr">5689 </span>    <span class="subxComment"># check output</span>
-<span id="L5690" class="LineNr">5690 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
-<span id="L5691" class="LineNr">5691 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5692" class="LineNr">5692 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
-<span id="L5693" class="LineNr">5693 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5694" class="LineNr">5694 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L5695" class="LineNr">5695 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5696" class="LineNr">5696 </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="L5697" class="Folded">5697 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5723" class="LineNr">5723 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;68 20 00  # 68/push 0x20/imm16&quot;, msg)</span>
-<span id="L5724" class="LineNr">5724 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5725" class="LineNr">5725 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-imm16-operand&quot;</span>/imm32
-<span id="L5726" class="LineNr">5726 </span>    68/push  <span class="Constant">&quot;68 20 00  # 68/push 0x20/imm16&quot;</span>/imm32
-<span id="L5727" class="LineNr">5727 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
-<span id="L5728" class="LineNr">5728 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5729" class="LineNr">5729 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
-<span id="L5730" class="LineNr">5730 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5731" class="LineNr">5731 </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>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L5732" class="LineNr">5732 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L5733" class="LineNr">5733 </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="L5734" class="LineNr">5734 </span>    5d/pop-to-ebp
-<span id="L5735" class="LineNr">5735 </span>    c3/return
-<span id="L5736" class="LineNr">5736 </span>
-<span id="L5737" class="LineNr">5737 </span><span class="subxTest">test-convert-instruction-handles-imm8-operand</span>:
-<span id="L5738" class="LineNr">5738 </span>    <span class="subxComment"># expand /imm8 operand into 1 byte</span>
-<span id="L5739" class="LineNr">5739 </span>    <span class="subxComment"># we don't have one of these at the moment, so this expands to an invalid instruction</span>
-<span id="L5740" class="LineNr">5740 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L5741" class="LineNr">5741 </span>    55/push-ebp
-<span id="L5742" class="LineNr">5742 </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="L5743" class="LineNr">5743 </span>    <span class="subxComment"># setup</span>
-<span id="L5744" class="LineNr">5744 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
-<span id="L5745" class="LineNr">5745 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5746" class="LineNr">5746 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
-<span id="L5747" class="LineNr">5747 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5748" class="LineNr">5748 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L5749" class="LineNr">5749 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5750" class="LineNr">5750 </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="L5751" class="LineNr">5751 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L5752" class="LineNr">5752 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5753" class="LineNr">5753 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
-<span id="L5754" class="LineNr">5754 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5755" class="LineNr">5755 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L5756" class="LineNr">5756 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5757" class="LineNr">5757 </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="L5758" class="LineNr">5758 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
-<span id="L5759" class="LineNr">5759 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5760" class="LineNr">5760 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
-<span id="L5761" class="LineNr">5761 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5762" class="LineNr">5762 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L5763" class="LineNr">5763 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5764" class="LineNr">5764 </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="L5765" class="LineNr">5765 </span>    <span class="subxComment"># initialize input</span>
-<span id="L5766" class="LineNr">5766 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;68/push 0x20/imm8&quot;)</span>
-<span id="L5767" class="LineNr">5767 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5768" class="LineNr">5768 </span>    68/push  <span class="Constant">&quot;68/push 0x20/imm8&quot;</span>/imm32
-<span id="L5769" class="LineNr">5769 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
-<span id="L5770" class="LineNr">5770 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5771" class="LineNr">5771 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L5772" class="LineNr">5772 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5773" class="LineNr">5773 </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="L5774" class="LineNr">5774 </span>    <span class="subxComment"># convert-instruction(_test-input-stream, _test-output-buffered-file)</span>
-<span id="L5775" class="LineNr">5775 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5776" class="LineNr">5776 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
-<span id="L5777" class="LineNr">5777 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
-<span id="L5778" class="LineNr">5778 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5779" class="LineNr">5779 </span>    e8/call  <a href='pack.subx.html#L1803'>convert-instruction</a>/disp32
-<span id="L5780" class="LineNr">5780 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5781" class="LineNr">5781 </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="L5782" class="LineNr">5782 </span>    <span class="subxComment"># check output</span>
-<span id="L5783" class="LineNr">5783 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
-<span id="L5784" class="LineNr">5784 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5785" class="LineNr">5785 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
-<span id="L5786" class="LineNr">5786 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5787" class="LineNr">5787 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L5788" class="LineNr">5788 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5789" class="LineNr">5789 </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="L5790" class="Folded">5790 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L5816" class="LineNr">5816 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;68 20  # 68/push 0x20/imm8&quot;, msg)</span>
-<span id="L5817" class="LineNr">5817 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5818" class="LineNr">5818 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-imm8-operand&quot;</span>/imm32
-<span id="L5819" class="LineNr">5819 </span>    68/push  <span class="Constant">&quot;68 20  # 68/push 0x20/imm8&quot;</span>/imm32
-<span id="L5820" class="LineNr">5820 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
-<span id="L5821" class="LineNr">5821 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5822" class="LineNr">5822 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
-<span id="L5823" class="LineNr">5823 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5824" class="LineNr">5824 </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>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L5825" class="LineNr">5825 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L5826" class="LineNr">5826 </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="L5827" class="LineNr">5827 </span>    5d/pop-to-ebp
-<span id="L5828" class="LineNr">5828 </span>    c3/return
-<span id="L5829" class="LineNr">5829 </span>
-<span id="L5830" class="LineNr">5830 </span><span class="subxComment"># shortcut for parse-hex-int-from-slice(next-token-from-slice(word-&gt;start, word-&gt;end, '/'))</span>
-<span id="L5831" class="LineNr">5831 </span><span class="subxFunction">parse-datum-of-word</span>:  <span class="subxComment"># word: (addr slice) -&gt; value/eax: int</span>
+<span id="L5644" class="LineNr">5644 </span><span class="subxTest">test-convert-instruction-handles-imm32-operand</span>:
+<span id="L5645" class="LineNr">5645 </span>    <span class="subxComment"># expand /imm32 operand into 4 bytes</span>
+<span id="L5646" class="LineNr">5646 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L5647" class="LineNr">5647 </span>    55/push-ebp
+<span id="L5648" class="LineNr">5648 </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="L5649" class="LineNr">5649 </span>    <span class="subxComment"># setup</span>
+<span id="L5650" class="LineNr">5650 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
+<span id="L5651" class="LineNr">5651 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5652" class="LineNr">5652 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5653" class="LineNr">5653 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5654" class="LineNr">5654 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5655" class="LineNr">5655 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5656" class="LineNr">5656 </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="L5657" class="LineNr">5657 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L5658" class="LineNr">5658 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5659" class="LineNr">5659 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
+<span id="L5660" class="LineNr">5660 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5661" class="LineNr">5661 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5662" class="LineNr">5662 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5663" class="LineNr">5663 </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="L5664" class="LineNr">5664 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
+<span id="L5665" class="LineNr">5665 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5666" class="LineNr">5666 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
+<span id="L5667" class="LineNr">5667 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5668" class="LineNr">5668 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5669" class="LineNr">5669 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5670" class="LineNr">5670 </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="L5671" class="LineNr">5671 </span>    <span class="subxComment"># initialize input</span>
+<span id="L5672" class="LineNr">5672 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;68/push 0x20/imm32&quot;)</span>
+<span id="L5673" class="LineNr">5673 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5674" class="LineNr">5674 </span>    68/push  <span class="Constant">&quot;68/push 0x20/imm32&quot;</span>/imm32
+<span id="L5675" class="LineNr">5675 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5676" class="LineNr">5676 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5677" class="LineNr">5677 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L5678" class="LineNr">5678 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5679" class="LineNr">5679 </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="L5680" class="LineNr">5680 </span>    <span class="subxComment"># convert-instruction(_test-input-stream, _test-output-buffered-file)</span>
+<span id="L5681" class="LineNr">5681 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5682" class="LineNr">5682 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
+<span id="L5683" class="LineNr">5683 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5684" class="LineNr">5684 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5685" class="LineNr">5685 </span>    e8/call  <a href='pack.subx.html#L1803'>convert-instruction</a>/disp32
+<span id="L5686" class="LineNr">5686 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5687" class="LineNr">5687 </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="L5688" class="LineNr">5688 </span>    <span class="subxComment"># check output</span>
+<span id="L5689" class="LineNr">5689 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
+<span id="L5690" class="LineNr">5690 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5691" class="LineNr">5691 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
+<span id="L5692" class="LineNr">5692 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5693" class="LineNr">5693 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L5694" class="LineNr">5694 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5695" class="LineNr">5695 </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="L5696" class="Folded">5696 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L5722" class="LineNr">5722 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;68 20 00 00 00  # 68/push 0x20/imm32&quot;, msg)</span>
+<span id="L5723" class="LineNr">5723 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5724" class="LineNr">5724 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-imm32-operand&quot;</span>/imm32
+<span id="L5725" class="LineNr">5725 </span>    68/push  <span class="Constant">&quot;68 20 00 00 00  # 68/push 0x20/imm32&quot;</span>/imm32
+<span id="L5726" class="LineNr">5726 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
+<span id="L5727" class="LineNr">5727 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5728" class="LineNr">5728 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
+<span id="L5729" class="LineNr">5729 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5730" class="LineNr">5730 </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>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L5731" class="LineNr">5731 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L5732" class="LineNr">5732 </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="L5733" class="LineNr">5733 </span>    5d/pop-to-ebp
+<span id="L5734" class="LineNr">5734 </span>    c3/return
+<span id="L5735" class="LineNr">5735 </span>
+<span id="L5736" class="LineNr">5736 </span><span class="subxTest">test-convert-instruction-handles-imm16-operand</span>:
+<span id="L5737" class="LineNr">5737 </span>    <span class="subxComment"># expand /imm16 operand into 2 bytes</span>
+<span id="L5738" class="LineNr">5738 </span>    <span class="subxComment"># we don't have one of these at the moment, so this expands to an invalid instruction</span>
+<span id="L5739" class="LineNr">5739 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L5740" class="LineNr">5740 </span>    55/push-ebp
+<span id="L5741" class="LineNr">5741 </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="L5742" class="LineNr">5742 </span>    <span class="subxComment"># setup</span>
+<span id="L5743" class="LineNr">5743 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
+<span id="L5744" class="LineNr">5744 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5745" class="LineNr">5745 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5746" class="LineNr">5746 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5747" class="LineNr">5747 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5748" class="LineNr">5748 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5749" class="LineNr">5749 </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="L5750" class="LineNr">5750 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L5751" class="LineNr">5751 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5752" class="LineNr">5752 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
+<span id="L5753" class="LineNr">5753 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5754" class="LineNr">5754 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5755" class="LineNr">5755 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5756" class="LineNr">5756 </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="L5757" class="LineNr">5757 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
+<span id="L5758" class="LineNr">5758 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5759" class="LineNr">5759 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
+<span id="L5760" class="LineNr">5760 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5761" class="LineNr">5761 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5762" class="LineNr">5762 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5763" class="LineNr">5763 </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="L5764" class="LineNr">5764 </span>    <span class="subxComment"># initialize input</span>
+<span id="L5765" class="LineNr">5765 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;68/push 0x20/imm16&quot;)</span>
+<span id="L5766" class="LineNr">5766 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5767" class="LineNr">5767 </span>    68/push  <span class="Constant">&quot;68/push 0x20/imm16&quot;</span>/imm32  <span class="subxComment"># not a valid instruction</span>
+<span id="L5768" class="LineNr">5768 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5769" class="LineNr">5769 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5770" class="LineNr">5770 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L5771" class="LineNr">5771 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5772" class="LineNr">5772 </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="L5773" class="LineNr">5773 </span>    <span class="subxComment"># convert-instruction(_test-input-stream, _test-output-buffered-file)</span>
+<span id="L5774" class="LineNr">5774 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5775" class="LineNr">5775 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
+<span id="L5776" class="LineNr">5776 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5777" class="LineNr">5777 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5778" class="LineNr">5778 </span>    e8/call  <a href='pack.subx.html#L1803'>convert-instruction</a>/disp32
+<span id="L5779" class="LineNr">5779 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5780" class="LineNr">5780 </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="L5781" class="LineNr">5781 </span>    <span class="subxComment"># check output</span>
+<span id="L5782" class="LineNr">5782 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
+<span id="L5783" class="LineNr">5783 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5784" class="LineNr">5784 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
+<span id="L5785" class="LineNr">5785 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5786" class="LineNr">5786 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L5787" class="LineNr">5787 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5788" class="LineNr">5788 </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="L5789" class="Folded">5789 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L5815" class="LineNr">5815 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;68 20 00  # 68/push 0x20/imm16&quot;, msg)</span>
+<span id="L5816" class="LineNr">5816 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5817" class="LineNr">5817 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-imm16-operand&quot;</span>/imm32
+<span id="L5818" class="LineNr">5818 </span>    68/push  <span class="Constant">&quot;68 20 00  # 68/push 0x20/imm16&quot;</span>/imm32
+<span id="L5819" class="LineNr">5819 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
+<span id="L5820" class="LineNr">5820 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5821" class="LineNr">5821 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
+<span id="L5822" class="LineNr">5822 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5823" class="LineNr">5823 </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>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L5824" class="LineNr">5824 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L5825" class="LineNr">5825 </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="L5826" class="LineNr">5826 </span>    5d/pop-to-ebp
+<span id="L5827" class="LineNr">5827 </span>    c3/return
+<span id="L5828" class="LineNr">5828 </span>
+<span id="L5829" class="LineNr">5829 </span><span class="subxTest">test-convert-instruction-handles-imm8-operand</span>:
+<span id="L5830" class="LineNr">5830 </span>    <span class="subxComment"># expand /imm8 operand into 1 byte</span>
+<span id="L5831" class="LineNr">5831 </span>    <span class="subxComment"># we don't have one of these at the moment, so this expands to an invalid instruction</span>
 <span id="L5832" class="LineNr">5832 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L5833" class="LineNr">5833 </span>    55/push-ebp
 <span id="L5834" class="LineNr">5834 </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="L5835" class="LineNr">5835 </span>    <span class="subxS1Comment"># . save registers</span>
-<span id="L5836" class="LineNr">5836 </span>    51/push-ecx
-<span id="L5837" class="LineNr">5837 </span>    56/push-esi
-<span id="L5838" class="LineNr">5838 </span>    <span class="subxComment"># esi = word</span>
-<span id="L5839" class="LineNr">5839 </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="L5840" class="LineNr">5840 </span>    <span class="subxComment"># var slice/ecx: slice</span>
-<span id="L5841" class="LineNr">5841 </span>    68/push  0/imm32/end
-<span id="L5842" class="LineNr">5842 </span>    68/push  0/imm32/start
-<span id="L5843" class="LineNr">5843 </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="L5844" class="LineNr">5844 </span>    <span class="subxComment"># slice = next-token-from-slice(word-&gt;start, word-&gt;end, '/')</span>
-<span id="L5845" class="LineNr">5845 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5846" class="LineNr">5846 </span>    51/push-ecx
-<span id="L5847" class="LineNr">5847 </span>    68/push  0x2f/imm32/slash
-<span id="L5848" class="LineNr">5848 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
-<span id="L5849" class="LineNr">5849 </span>    ff          6/subop/push        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>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
-<span id="L5850" class="LineNr">5850 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5851" class="LineNr">5851 </span>    e8/call  <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32
-<span id="L5852" class="LineNr">5852 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5853" class="LineNr">5853 </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>              0x10/imm32        <span class="subxComment"># add to esp</span>
-<span id="L5854" class="LineNr">5854 </span>    <span class="subxComment"># return parse-hex-int-from-slice(slice)</span>
-<span id="L5855" class="LineNr">5855 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L5856" class="LineNr">5856 </span>    51/push-ecx
-<span id="L5857" class="LineNr">5857 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L5858" class="LineNr">5858 </span>    e8/call  <a href='../067parse-hex.subx.html#L387'>parse-hex-int-from-slice</a>/disp32
-<span id="L5859" class="LineNr">5859 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L5860" class="LineNr">5860 </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="L5861" class="LineNr">5861 </span><span class="Constant">$parse-datum-of-word:end</span>:
-<span id="L5862" class="LineNr">5862 </span>    <span class="subxS1Comment"># . reclaim locals</span>
-<span id="L5863" class="LineNr">5863 </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="L5864" class="LineNr">5864 </span>    <span class="subxS1Comment"># . restore registers</span>
-<span id="L5865" class="LineNr">5865 </span>    5e/pop-to-esi
-<span id="L5866" class="LineNr">5866 </span>    59/pop-to-ecx
-<span id="L5867" class="LineNr">5867 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L5868" class="LineNr">5868 </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="L5869" class="LineNr">5869 </span>    5d/pop-to-ebp
-<span id="L5870" class="LineNr">5870 </span>    c3/return
-<span id="L5871" class="LineNr">5871 </span>
-<span id="L5872" class="LineNr">5872 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
+<span id="L5835" class="LineNr">5835 </span>    <span class="subxComment"># setup</span>
+<span id="L5836" class="LineNr">5836 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
+<span id="L5837" class="LineNr">5837 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5838" class="LineNr">5838 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5839" class="LineNr">5839 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5840" class="LineNr">5840 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5841" class="LineNr">5841 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5842" class="LineNr">5842 </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="L5843" class="LineNr">5843 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L5844" class="LineNr">5844 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5845" class="LineNr">5845 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
+<span id="L5846" class="LineNr">5846 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5847" class="LineNr">5847 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5848" class="LineNr">5848 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5849" class="LineNr">5849 </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="L5850" class="LineNr">5850 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
+<span id="L5851" class="LineNr">5851 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5852" class="LineNr">5852 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
+<span id="L5853" class="LineNr">5853 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5854" class="LineNr">5854 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L5855" class="LineNr">5855 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5856" class="LineNr">5856 </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="L5857" class="LineNr">5857 </span>    <span class="subxComment"># initialize input</span>
+<span id="L5858" class="LineNr">5858 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;68/push 0x20/imm8&quot;)</span>
+<span id="L5859" class="LineNr">5859 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5860" class="LineNr">5860 </span>    68/push  <span class="Constant">&quot;68/push 0x20/imm8&quot;</span>/imm32
+<span id="L5861" class="LineNr">5861 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5862" class="LineNr">5862 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5863" class="LineNr">5863 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L5864" class="LineNr">5864 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5865" class="LineNr">5865 </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="L5866" class="LineNr">5866 </span>    <span class="subxComment"># convert-instruction(_test-input-stream, _test-output-buffered-file)</span>
+<span id="L5867" class="LineNr">5867 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5868" class="LineNr">5868 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
+<span id="L5869" class="LineNr">5869 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
+<span id="L5870" class="LineNr">5870 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5871" class="LineNr">5871 </span>    e8/call  <a href='pack.subx.html#L1803'>convert-instruction</a>/disp32
+<span id="L5872" class="LineNr">5872 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5873" class="LineNr">5873 </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="L5874" class="LineNr">5874 </span>    <span class="subxComment"># check output</span>
+<span id="L5875" class="LineNr">5875 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
+<span id="L5876" class="LineNr">5876 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5877" class="LineNr">5877 </span>    68/push  <a href='../064write-byte.subx.html#L359'>_test-output-buffered-file</a>/imm32
+<span id="L5878" class="LineNr">5878 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5879" class="LineNr">5879 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L5880" class="LineNr">5880 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5881" class="LineNr">5881 </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="L5882" class="Folded">5882 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L5908" class="LineNr">5908 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;68 20  # 68/push 0x20/imm8&quot;, msg)</span>
+<span id="L5909" class="LineNr">5909 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5910" class="LineNr">5910 </span>    68/push  <span class="Constant">&quot;F - test-convert-instruction-handles-imm8-operand&quot;</span>/imm32
+<span id="L5911" class="LineNr">5911 </span>    68/push  <span class="Constant">&quot;68 20  # 68/push 0x20/imm8&quot;</span>/imm32
+<span id="L5912" class="LineNr">5912 </span>    68/push  <a href='../064write-byte.subx.html#L285'>_test-output-stream</a>/imm32
+<span id="L5913" class="LineNr">5913 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5914" class="LineNr">5914 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
+<span id="L5915" class="LineNr">5915 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5916" class="LineNr">5916 </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>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L5917" class="LineNr">5917 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L5918" class="LineNr">5918 </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="L5919" class="LineNr">5919 </span>    5d/pop-to-ebp
+<span id="L5920" class="LineNr">5920 </span>    c3/return
+<span id="L5921" class="LineNr">5921 </span>
+<span id="L5922" class="LineNr">5922 </span><span class="subxComment"># shortcut for parse-hex-int-from-slice(next-token-from-slice(word-&gt;start, word-&gt;end, '/'))</span>
+<span id="L5923" class="LineNr">5923 </span><span class="subxFunction">parse-datum-of-word</span>:  <span class="subxComment"># word: (addr slice) -&gt; value/eax: int</span>
+<span id="L5924" class="LineNr">5924 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L5925" class="LineNr">5925 </span>    55/push-ebp
+<span id="L5926" class="LineNr">5926 </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="L5927" class="LineNr">5927 </span>    <span class="subxS1Comment"># . save registers</span>
+<span id="L5928" class="LineNr">5928 </span>    51/push-ecx
+<span id="L5929" class="LineNr">5929 </span>    56/push-esi
+<span id="L5930" class="LineNr">5930 </span>    <span class="subxComment"># esi = word</span>
+<span id="L5931" class="LineNr">5931 </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="L5932" class="LineNr">5932 </span>    <span class="subxComment"># var slice/ecx: slice</span>
+<span id="L5933" class="LineNr">5933 </span>    68/push  0/imm32/end
+<span id="L5934" class="LineNr">5934 </span>    68/push  0/imm32/start
+<span id="L5935" class="LineNr">5935 </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="L5936" class="LineNr">5936 </span>    <span class="subxComment"># slice = next-token-from-slice(word-&gt;start, word-&gt;end, '/')</span>
+<span id="L5937" class="LineNr">5937 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5938" class="LineNr">5938 </span>    51/push-ecx
+<span id="L5939" class="LineNr">5939 </span>    68/push  0x2f/imm32/slash
+<span id="L5940" class="LineNr">5940 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
+<span id="L5941" class="LineNr">5941 </span>    ff          6/subop/push        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>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
+<span id="L5942" class="LineNr">5942 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5943" class="LineNr">5943 </span>    e8/call  <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32
+<span id="L5944" class="LineNr">5944 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5945" class="LineNr">5945 </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>              0x10/imm32        <span class="subxComment"># add to esp</span>
+<span id="L5946" class="LineNr">5946 </span>    <span class="subxComment"># return parse-hex-int-from-slice(slice)</span>
+<span id="L5947" class="LineNr">5947 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L5948" class="LineNr">5948 </span>    51/push-ecx
+<span id="L5949" class="LineNr">5949 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L5950" class="LineNr">5950 </span>    e8/call  <a href='../067parse-hex.subx.html#L387'>parse-hex-int-from-slice</a>/disp32
+<span id="L5951" class="LineNr">5951 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L5952" class="LineNr">5952 </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="L5953" class="LineNr">5953 </span><span class="Constant">$parse-datum-of-word:end</span>:
+<span id="L5954" class="LineNr">5954 </span>    <span class="subxS1Comment"># . reclaim locals</span>
+<span id="L5955" class="LineNr">5955 </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="L5956" class="LineNr">5956 </span>    <span class="subxS1Comment"># . restore registers</span>
+<span id="L5957" class="LineNr">5957 </span>    5e/pop-to-esi
+<span id="L5958" class="LineNr">5958 </span>    59/pop-to-ecx
+<span id="L5959" class="LineNr">5959 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L5960" class="LineNr">5960 </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="L5961" class="LineNr">5961 </span>    5d/pop-to-ebp
+<span id="L5962" class="LineNr">5962 </span>    c3/return
+<span id="L5963" class="LineNr">5963 </span>
+<span id="L5964" class="LineNr">5964 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
 </pre>
 </body>
 </html>