diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-12-09 01:26:58 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-12-09 01:26:58 -0800 |
commit | 8aeb85f04ee68b960a6d326aca1a17dec2f6d019 (patch) | |
tree | 26f861361c28ca77fb8298b21a905dc6e06c91ef /html/015immediate_addressing.cc.html | |
parent | 2249e605c19f0dbe0c34c1c4f635b802f56dc535 (diff) | |
download | mu-8aeb85f04ee68b960a6d326aca1a17dec2f6d019.tar.gz |
5806
Diffstat (limited to 'html/015immediate_addressing.cc.html')
-rw-r--r-- | html/015immediate_addressing.cc.html | 166 |
1 files changed, 83 insertions, 83 deletions
diff --git a/html/015immediate_addressing.cc.html b/html/015immediate_addressing.cc.html index f91442d5..c5d39b5e 100644 --- a/html/015immediate_addressing.cc.html +++ b/html/015immediate_addressing.cc.html @@ -62,7 +62,7 @@ if ('onhashchange' in window) { <span id="L1" class="LineNr"> 1 </span><span class="Comment">//: instructions that (immediately) contain an argument to act with</span> <span id="L2" class="LineNr"> 2 </span> <span id="L3" class="LineNr"> 3 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L4" class="LineNr"> 4 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"05"</span><span class="Delimiter">,</span> <span class="Constant">"add imm32 to <a href='010---vm.cc.html#L16'>EAX</a> (add)"</span><span class="Delimiter">);</span> +<span id="L4" class="LineNr"> 4 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"05"</span><span class="Delimiter">,</span> <span class="Constant">"add imm32 to <a href='010---vm.cc.html#L16'>EAX</a> (add)"</span><span class="Delimiter">);</span> <span id="L5" class="LineNr"> 5 </span> <span id="L6" class="LineNr"> 6 </span><span class="Delimiter">:(before "End Single-Byte Opcodes")</span> <span id="L7" class="LineNr"> 7 </span><span class="Normal">case</span> <span class="Constant">0x05</span>: <span class="Delimiter">{</span> <span class="Comment">// add imm32 to EAX</span> @@ -92,7 +92,7 @@ if ('onhashchange' in window) { <span id="L31" class="LineNr"> 31 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L32" class="LineNr"> 32 </span> <span class="Constant">" 05 01 00 00 00 \n"</span> <span class="Comment">// add 1 to EAX</span> <span id="L33" class="LineNr"> 33 </span> <span class="Delimiter">);</span> -<span id="L34" class="LineNr"> 34 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L34" class="LineNr"> 34 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L35" class="LineNr"> 35 </span> <span class="Constant">"run: add imm32 0x00000001 to EAX\n"</span> <span id="L36" class="LineNr"> 36 </span> <span class="Constant">"run: SF=1; ZF=0; CF=0; OF=1\n"</span> <span id="L37" class="LineNr"> 37 </span> <span class="Constant">"run: storing 0x80000000\n"</span> @@ -107,7 +107,7 @@ if ('onhashchange' in window) { <span id="L46" class="LineNr"> 46 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L47" class="LineNr"> 47 </span> <span class="Constant">" 05 01 00 00 00 \n"</span> <span class="Comment">// add 1 to EAX</span> <span id="L48" class="LineNr"> 48 </span> <span class="Delimiter">);</span> -<span id="L49" class="LineNr"> 49 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L49" class="LineNr"> 49 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L50" class="LineNr"> 50 </span> <span class="Constant">"run: add imm32 0x00000001 to EAX\n"</span> <span id="L51" class="LineNr"> 51 </span> <span class="Constant">"run: SF=0; ZF=1; CF=1; OF=0\n"</span> <span id="L52" class="LineNr"> 52 </span> <span class="Constant">"run: storing 0x00000000\n"</span> @@ -121,7 +121,7 @@ if ('onhashchange' in window) { <span id="L60" class="LineNr"> 60 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L61" class="LineNr"> 61 </span> <span class="Constant">" 05 00 00 00 80 \n"</span> <span class="Comment">// add 0x80000000 to EAX</span> <span id="L62" class="LineNr"> 62 </span> <span class="Delimiter">);</span> -<span id="L63" class="LineNr"> 63 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L63" class="LineNr"> 63 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L64" class="LineNr"> 64 </span> <span class="Constant">"run: add imm32 0x80000000 to EAX\n"</span> <span id="L65" class="LineNr"> 65 </span> <span class="Constant">"run: SF=0; ZF=1; CF=1; OF=1\n"</span> <span id="L66" class="LineNr"> 66 </span> <span class="Constant">"run: storing 0x00000000\n"</span> @@ -131,7 +131,7 @@ if ('onhashchange' in window) { <span id="L70" class="LineNr"> 70 </span><span class="Comment">//:</span> <span id="L71" class="LineNr"> 71 </span> <span id="L72" class="LineNr"> 72 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L73" class="LineNr"> 73 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"81"</span><span class="Delimiter">,</span> <span class="Constant">"combine rm32 with imm32 based on subop (add/sub/and/or/xor/cmp)"</span><span class="Delimiter">);</span> +<span id="L73" class="LineNr"> 73 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"81"</span><span class="Delimiter">,</span> <span class="Constant">"combine rm32 with imm32 based on subop (add/sub/and/or/xor/cmp)"</span><span class="Delimiter">);</span> <span id="L74" class="LineNr"> 74 </span> <span id="L75" class="LineNr"> 75 </span><span class="Delimiter">:(code)</span> <span id="L76" class="LineNr"> 76 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L76'>test_add_imm32_to_r32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -142,7 +142,7 @@ if ('onhashchange' in window) { <span id="L81" class="LineNr"> 81 </span> <span class="Constant">" 81 c3 0a 0b 0c 0d\n"</span> <span class="Comment">// add 0x0d0c0b0a to EBX</span> <span id="L82" class="LineNr"> 82 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 000 (subop add) 011 (dest EBX)</span> <span id="L83" class="LineNr"> 83 </span> <span class="Delimiter">);</span> -<span id="L84" class="LineNr"> 84 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L84" class="LineNr"> 84 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L85" class="LineNr"> 85 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L86" class="LineNr"> 86 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L87" class="LineNr"> 87 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> @@ -195,7 +195,7 @@ if ('onhashchange' in window) { <span id="L134" class="LineNr"> 134 </span> <span class="Constant">" 81 c3 01 00 00 00\n"</span> <span class="Comment">// add 1 to EBX</span> <span id="L135" class="LineNr"> 135 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 000 (subop add) 011 (dest EBX)</span> <span id="L136" class="LineNr"> 136 </span> <span class="Delimiter">);</span> -<span id="L137" class="LineNr"> 137 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L137" class="LineNr"> 137 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L138" class="LineNr"> 138 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L139" class="LineNr"> 139 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L140" class="LineNr"> 140 </span> <span class="Constant">"run: imm32 is 0x00000001\n"</span> @@ -213,7 +213,7 @@ if ('onhashchange' in window) { <span id="L152" class="LineNr"> 152 </span> <span class="Constant">" 81 c3 01 00 00 00\n"</span> <span class="Comment">// add 1 to EBX</span> <span id="L153" class="LineNr"> 153 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 011 (subop add) 011 (dest EBX)</span> <span id="L154" class="LineNr"> 154 </span> <span class="Delimiter">);</span> -<span id="L155" class="LineNr"> 155 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L155" class="LineNr"> 155 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L156" class="LineNr"> 156 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L157" class="LineNr"> 157 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L158" class="LineNr"> 158 </span> <span class="Constant">"run: imm32 is 0x00000001\n"</span> @@ -231,7 +231,7 @@ if ('onhashchange' in window) { <span id="L170" class="LineNr"> 170 </span> <span class="Constant">" 81 c3 00 00 00 80\n"</span> <span class="Comment">// add 0x80000000 to EBX</span> <span id="L171" class="LineNr"> 171 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 011 (subop add) 011 (dest EBX)</span> <span id="L172" class="LineNr"> 172 </span> <span class="Delimiter">);</span> -<span id="L173" class="LineNr"> 173 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L173" class="LineNr"> 173 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L174" class="LineNr"> 174 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L175" class="LineNr"> 175 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L176" class="LineNr"> 176 </span> <span class="Constant">"run: imm32 is 0x80000000\n"</span> @@ -254,9 +254,9 @@ if ('onhashchange' in window) { <span id="L193" class="LineNr"> 193 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L194" class="LineNr"> 194 </span> <span class="Constant">"01 00 00 00\n"</span> <span class="Comment">// 0x00000001</span> <span id="L195" class="LineNr"> 195 </span> <span class="Delimiter">);</span> -<span id="L196" class="LineNr"> 196 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L196" class="LineNr"> 196 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L197" class="LineNr"> 197 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L198" class="LineNr"> 198 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L198" class="LineNr"> 198 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L199" class="LineNr"> 199 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L200" class="LineNr"> 200 </span> <span class="Constant">"run: subop add\n"</span> <span id="L201" class="LineNr"> 201 </span> <span class="Constant">"run: storing 0x0d0c0b0b\n"</span> @@ -266,7 +266,7 @@ if ('onhashchange' in window) { <span id="L205" class="LineNr"> 205 </span><span class="SalientComment">//:: subtract</span> <span id="L206" class="LineNr"> 206 </span> <span id="L207" class="LineNr"> 207 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L208" class="LineNr"> 208 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"2d"</span><span class="Delimiter">,</span> <span class="Constant">"subtract imm32 from <a href='010---vm.cc.html#L16'>EAX</a> (sub)"</span><span class="Delimiter">);</span> +<span id="L208" class="LineNr"> 208 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"2d"</span><span class="Delimiter">,</span> <span class="Constant">"subtract imm32 from <a href='010---vm.cc.html#L16'>EAX</a> (sub)"</span><span class="Delimiter">);</span> <span id="L209" class="LineNr"> 209 </span> <span id="L210" class="LineNr"> 210 </span><span class="Delimiter">:(code)</span> <span id="L211" class="LineNr"> 211 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L211'>test_subtract_imm32_from_EAX</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -276,7 +276,7 @@ if ('onhashchange' in window) { <span id="L215" class="LineNr"> 215 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L216" class="LineNr"> 216 </span> <span class="Constant">" 2d 0a 0b 0c 0d \n"</span> <span class="Comment">// subtract 0x0d0c0b0a from EAX</span> <span id="L217" class="LineNr"> 217 </span> <span class="Delimiter">);</span> -<span id="L218" class="LineNr"> 218 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L218" class="LineNr"> 218 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L219" class="LineNr"> 219 </span> <span class="Constant">"run: subtract imm32 0x0d0c0b0a from EAX\n"</span> <span id="L220" class="LineNr"> 220 </span> <span class="Constant">"run: storing 0x000000a0\n"</span> <span id="L221" class="LineNr"> 221 </span> <span class="Delimiter">);</span> @@ -310,7 +310,7 @@ if ('onhashchange' in window) { <span id="L249" class="LineNr"> 249 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L250" class="LineNr"> 250 </span> <span class="Constant">" 2d ff ff ff 7f \n"</span> <span class="Comment">// subtract largest positive signed integer from EAX</span> <span id="L251" class="LineNr"> 251 </span> <span class="Delimiter">);</span> -<span id="L252" class="LineNr"> 252 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L252" class="LineNr"> 252 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L253" class="LineNr"> 253 </span> <span class="Constant">"run: subtract imm32 0x7fffffff from EAX\n"</span> <span id="L254" class="LineNr"> 254 </span> <span class="Constant">"run: SF=0; ZF=0; CF=0; OF=1\n"</span> <span id="L255" class="LineNr"> 255 </span> <span class="Constant">"run: storing 0x00000001\n"</span> @@ -324,7 +324,7 @@ if ('onhashchange' in window) { <span id="L263" class="LineNr"> 263 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L264" class="LineNr"> 264 </span> <span class="Constant">" 2d 01 00 00 00 \n"</span> <span class="Comment">// subtract 1 from EAX</span> <span id="L265" class="LineNr"> 265 </span> <span class="Delimiter">);</span> -<span id="L266" class="LineNr"> 266 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L266" class="LineNr"> 266 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L267" class="LineNr"> 267 </span> <span class="Constant">"run: subtract imm32 0x00000001 from EAX\n"</span> <span id="L268" class="LineNr"> 268 </span> <span class="Constant">"run: SF=1; ZF=0; CF=1; OF=0\n"</span> <span id="L269" class="LineNr"> 269 </span> <span class="Constant">"run: storing 0xffffffff\n"</span> @@ -338,7 +338,7 @@ if ('onhashchange' in window) { <span id="L277" class="LineNr"> 277 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L278" class="LineNr"> 278 </span> <span class="Constant">" 2d 00 00 00 80 \n"</span> <span class="Comment">// subtract smallest negative signed integer from EAX</span> <span id="L279" class="LineNr"> 279 </span> <span class="Delimiter">);</span> -<span id="L280" class="LineNr"> 280 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L280" class="LineNr"> 280 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L281" class="LineNr"> 281 </span> <span class="Constant">"run: subtract imm32 0x80000000 from EAX\n"</span> <span id="L282" class="LineNr"> 282 </span> <span class="Constant">"run: SF=1; ZF=0; CF=1; OF=1\n"</span> <span id="L283" class="LineNr"> 283 </span> <span class="Constant">"run: storing 0x80000000\n"</span> @@ -357,9 +357,9 @@ if ('onhashchange' in window) { <span id="L296" class="LineNr"> 296 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L297" class="LineNr"> 297 </span> <span class="Constant">"0a 00 00 00\n"</span> <span class="Comment">// 0x0000000a</span> <span id="L298" class="LineNr"> 298 </span> <span class="Delimiter">);</span> -<span id="L299" class="LineNr"> 299 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L299" class="LineNr"> 299 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L300" class="LineNr"> 300 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L301" class="LineNr"> 301 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L301" class="LineNr"> 301 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L302" class="LineNr"> 302 </span> <span class="Constant">"run: imm32 is 0x00000001\n"</span> <span id="L303" class="LineNr"> 303 </span> <span class="Constant">"run: subop subtract\n"</span> <span id="L304" class="LineNr"> 304 </span> <span class="Constant">"run: storing 0x00000009\n"</span> @@ -397,9 +397,9 @@ if ('onhashchange' in window) { <span id="L336" class="LineNr"> 336 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L337" class="LineNr"> 337 </span> <span class="Constant">"00 00 00 80\n"</span> <span class="Comment">// smallest negative signed integer</span> <span id="L338" class="LineNr"> 338 </span> <span class="Delimiter">);</span> -<span id="L339" class="LineNr"> 339 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L339" class="LineNr"> 339 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L340" class="LineNr"> 340 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L341" class="LineNr"> 341 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L341" class="LineNr"> 341 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L342" class="LineNr"> 342 </span> <span class="Constant">"run: effective address contains 80000000\n"</span> <span id="L343" class="LineNr"> 343 </span> <span class="Constant">"run: imm32 is 0x7fffffff\n"</span> <span id="L344" class="LineNr"> 344 </span> <span class="Constant">"run: subop subtract\n"</span> @@ -418,9 +418,9 @@ if ('onhashchange' in window) { <span id="L357" class="LineNr"> 357 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L358" class="LineNr"> 358 </span> <span class="Constant">"00 00 00 00\n"</span> <span class="Comment">// 0</span> <span id="L359" class="LineNr"> 359 </span> <span class="Delimiter">);</span> -<span id="L360" class="LineNr"> 360 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L360" class="LineNr"> 360 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L361" class="LineNr"> 361 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L362" class="LineNr"> 362 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L362" class="LineNr"> 362 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L363" class="LineNr"> 363 </span> <span class="Constant">"run: effective address contains 0\n"</span> <span id="L364" class="LineNr"> 364 </span> <span class="Constant">"run: imm32 is 0x00000001\n"</span> <span id="L365" class="LineNr"> 365 </span> <span class="Constant">"run: subop subtract\n"</span> @@ -439,9 +439,9 @@ if ('onhashchange' in window) { <span id="L378" class="LineNr"> 378 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L379" class="LineNr"> 379 </span> <span class="Constant">"00 00 00 00\n"</span> <span class="Comment">// 0</span> <span id="L380" class="LineNr"> 380 </span> <span class="Delimiter">);</span> -<span id="L381" class="LineNr"> 381 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L381" class="LineNr"> 381 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L382" class="LineNr"> 382 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L383" class="LineNr"> 383 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L383" class="LineNr"> 383 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L384" class="LineNr"> 384 </span> <span class="Constant">"run: effective address contains 0\n"</span> <span id="L385" class="LineNr"> 385 </span> <span class="Constant">"run: imm32 is 0x80000000\n"</span> <span id="L386" class="LineNr"> 386 </span> <span class="Constant">"run: subop subtract\n"</span> @@ -460,7 +460,7 @@ if ('onhashchange' in window) { <span id="L399" class="LineNr"> 399 </span> <span class="Constant">" 81 eb 01 00 00 00 \n"</span> <span class="Comment">// subtract 1 from EBX</span> <span id="L400" class="LineNr"> 400 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 101 (subop subtract) 011 (dest EBX)</span> <span id="L401" class="LineNr"> 401 </span> <span class="Delimiter">);</span> -<span id="L402" class="LineNr"> 402 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L402" class="LineNr"> 402 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L403" class="LineNr"> 403 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L404" class="LineNr"> 404 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L405" class="LineNr"> 405 </span> <span class="Constant">"run: imm32 is 0x00000001\n"</span> @@ -472,7 +472,7 @@ if ('onhashchange' in window) { <span id="L411" class="LineNr"> 411 </span><span class="SalientComment">//:: shift left</span> <span id="L412" class="LineNr"> 412 </span> <span id="L413" class="LineNr"> 413 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L414" class="LineNr"> 414 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"c1"</span><span class="Delimiter">,</span> <span class="Constant">"shift rm32 by imm8 bits depending on subop (sal/sar/shl/shr)"</span><span class="Delimiter">);</span> +<span id="L414" class="LineNr"> 414 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"c1"</span><span class="Delimiter">,</span> <span class="Constant">"shift rm32 by imm8 bits depending on subop (sal/sar/shl/shr)"</span><span class="Delimiter">);</span> <span id="L415" class="LineNr"> 415 </span> <span id="L416" class="LineNr"> 416 </span><span class="Delimiter">:(code)</span> <span id="L417" class="LineNr"> 417 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L417'>test_shift_left_r32_with_imm8</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -483,7 +483,7 @@ if ('onhashchange' in window) { <span id="L422" class="LineNr"> 422 </span> <span class="Constant">" c1 e3 01 \n"</span> <span class="Comment">// shift EBX left by 1 bit</span> <span id="L423" class="LineNr"> 423 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 100 (subop shift left) 011 (dest EBX)</span> <span id="L424" class="LineNr"> 424 </span> <span class="Delimiter">);</span> -<span id="L425" class="LineNr"> 425 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L425" class="LineNr"> 425 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L426" class="LineNr"> 426 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L427" class="LineNr"> 427 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L428" class="LineNr"> 428 </span> <span class="Constant">"run: subop: shift left by CL bits\n"</span> @@ -534,7 +534,7 @@ if ('onhashchange' in window) { <span id="L473" class="LineNr"> 473 </span> <span class="Constant">" c1 fb 01 \n"</span> <span class="Comment">// shift EBX right by 1 bit</span> <span id="L474" class="LineNr"> 474 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)</span> <span id="L475" class="LineNr"> 475 </span> <span class="Delimiter">);</span> -<span id="L476" class="LineNr"> 476 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L476" class="LineNr"> 476 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L477" class="LineNr"> 477 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L478" class="LineNr"> 478 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L479" class="LineNr"> 479 </span> <span class="Constant">"run: subop: shift right by CL bits, while preserving sign\n"</span> @@ -568,7 +568,7 @@ if ('onhashchange' in window) { <span id="L507" class="LineNr"> 507 </span> <span class="Constant">" c1 fb 01 \n"</span> <span class="Comment">// shift EBX right by 1 bit</span> <span id="L508" class="LineNr"> 508 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)</span> <span id="L509" class="LineNr"> 509 </span> <span class="Delimiter">);</span> -<span id="L510" class="LineNr"> 510 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L510" class="LineNr"> 510 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L511" class="LineNr"> 511 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L512" class="LineNr"> 512 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L513" class="LineNr"> 513 </span> <span class="Constant">"run: subop: shift right by CL bits, while preserving sign\n"</span> @@ -586,7 +586,7 @@ if ('onhashchange' in window) { <span id="L525" class="LineNr"> 525 </span> <span class="Constant">" c1 fb 01 \n"</span> <span class="Comment">// shift EBX right by 1 bit, while preserving sign</span> <span id="L526" class="LineNr"> 526 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)</span> <span id="L527" class="LineNr"> 527 </span> <span class="Delimiter">);</span> -<span id="L528" class="LineNr"> 528 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L528" class="LineNr"> 528 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L529" class="LineNr"> 529 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L530" class="LineNr"> 530 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L531" class="LineNr"> 531 </span> <span class="Constant">"run: subop: shift right by CL bits, while preserving sign\n"</span> @@ -606,7 +606,7 @@ if ('onhashchange' in window) { <span id="L545" class="LineNr"> 545 </span> <span class="Constant">" c1 eb 01 \n"</span> <span class="Comment">// shift EBX right by 1 bit, while padding zeroes</span> <span id="L546" class="LineNr"> 546 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)</span> <span id="L547" class="LineNr"> 547 </span> <span class="Delimiter">);</span> -<span id="L548" class="LineNr"> 548 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L548" class="LineNr"> 548 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L549" class="LineNr"> 549 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L550" class="LineNr"> 550 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L551" class="LineNr"> 551 </span> <span class="Constant">"run: subop: shift right by CL bits, while padding zeroes\n"</span> @@ -643,7 +643,7 @@ if ('onhashchange' in window) { <span id="L582" class="LineNr"> 582 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L583" class="LineNr"> 583 </span> <span class="Constant">" c1 eb 01 \n"</span> <span class="Comment">// shift EBX right by 1 bit, while padding zeroes</span> <span id="L584" class="LineNr"> 584 </span> <span class="Delimiter">);</span> -<span id="L585" class="LineNr"> 585 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L585" class="LineNr"> 585 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L586" class="LineNr"> 586 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L587" class="LineNr"> 587 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L588" class="LineNr"> 588 </span> <span class="Constant">"run: subop: shift right by CL bits, while padding zeroes\n"</span> @@ -661,7 +661,7 @@ if ('onhashchange' in window) { <span id="L600" class="LineNr"> 600 </span> <span class="Constant">" c1 eb 01 \n"</span> <span class="Comment">// shift EBX right by 1 bit, while padding zeroes</span> <span id="L601" class="LineNr"> 601 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)</span> <span id="L602" class="LineNr"> 602 </span> <span class="Delimiter">);</span> -<span id="L603" class="LineNr"> 603 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L603" class="LineNr"> 603 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L604" class="LineNr"> 604 </span> <span class="Constant">"run: operate on r/m32\n"</span> <span id="L605" class="LineNr"> 605 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L606" class="LineNr"> 606 </span> <span class="Constant">"run: subop: shift right by CL bits, while padding zeroes\n"</span> @@ -672,7 +672,7 @@ if ('onhashchange' in window) { <span id="L611" class="LineNr"> 611 </span><span class="SalientComment">//:: and</span> <span id="L612" class="LineNr"> 612 </span> <span id="L613" class="LineNr"> 613 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L614" class="LineNr"> 614 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"25"</span><span class="Delimiter">,</span> <span class="Constant">"EAX = bitwise AND of imm32 with <a href='010---vm.cc.html#L16'>EAX</a> (and)"</span><span class="Delimiter">);</span> +<span id="L614" class="LineNr"> 614 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"25"</span><span class="Delimiter">,</span> <span class="Constant">"EAX = bitwise AND of imm32 with <a href='010---vm.cc.html#L16'>EAX</a> (and)"</span><span class="Delimiter">);</span> <span id="L615" class="LineNr"> 615 </span> <span id="L616" class="LineNr"> 616 </span><span class="Delimiter">:(code)</span> <span id="L617" class="LineNr"> 617 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L617'>test_and_EAX_with_imm32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -682,7 +682,7 @@ if ('onhashchange' in window) { <span id="L621" class="LineNr"> 621 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L622" class="LineNr"> 622 </span> <span class="Constant">" 25 0a 0b 0c 0d \n"</span> <span class="Comment">// and 0x0d0c0b0a with EAX</span> <span id="L623" class="LineNr"> 623 </span> <span class="Delimiter">);</span> -<span id="L624" class="LineNr"> 624 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L624" class="LineNr"> 624 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L625" class="LineNr"> 625 </span> <span class="Constant">"run: and imm32 0x0d0c0b0a with EAX\n"</span> <span id="L626" class="LineNr"> 626 </span> <span class="Constant">"run: storing 0x0000000a\n"</span> <span id="L627" class="LineNr"> 627 </span> <span class="Delimiter">);</span> @@ -717,9 +717,9 @@ if ('onhashchange' in window) { <span id="L656" class="LineNr"> 656 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L657" class="LineNr"> 657 </span> <span class="Constant">"ff 00 00 00\n"</span> <span class="Comment">// 0x000000ff</span> <span id="L658" class="LineNr"> 658 </span> <span class="Delimiter">);</span> -<span id="L659" class="LineNr"> 659 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L659" class="LineNr"> 659 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L660" class="LineNr"> 660 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L661" class="LineNr"> 661 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L661" class="LineNr"> 661 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L662" class="LineNr"> 662 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L663" class="LineNr"> 663 </span> <span class="Constant">"run: subop and\n"</span> <span id="L664" class="LineNr"> 664 </span> <span class="Constant">"run: storing 0x0000000a\n"</span> @@ -752,7 +752,7 @@ if ('onhashchange' in window) { <span id="L691" class="LineNr"> 691 </span> <span class="Constant">" 81 e3 0a 0b 0c 0d \n"</span> <span class="Comment">// and 0x0d0c0b0a with EBX</span> <span id="L692" class="LineNr"> 692 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 100 (subop and) 011 (dest EBX)</span> <span id="L693" class="LineNr"> 693 </span> <span class="Delimiter">);</span> -<span id="L694" class="LineNr"> 694 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L694" class="LineNr"> 694 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L695" class="LineNr"> 695 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L696" class="LineNr"> 696 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L697" class="LineNr"> 697 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> @@ -764,7 +764,7 @@ if ('onhashchange' in window) { <span id="L703" class="LineNr"> 703 </span><span class="SalientComment">//:: or</span> <span id="L704" class="LineNr"> 704 </span> <span id="L705" class="LineNr"> 705 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L706" class="LineNr"> 706 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"0d"</span><span class="Delimiter">,</span> <span class="Constant">"EAX = bitwise OR of imm32 with <a href='010---vm.cc.html#L16'>EAX</a> (or)"</span><span class="Delimiter">);</span> +<span id="L706" class="LineNr"> 706 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"0d"</span><span class="Delimiter">,</span> <span class="Constant">"EAX = bitwise OR of imm32 with <a href='010---vm.cc.html#L16'>EAX</a> (or)"</span><span class="Delimiter">);</span> <span id="L707" class="LineNr"> 707 </span> <span id="L708" class="LineNr"> 708 </span><span class="Delimiter">:(code)</span> <span id="L709" class="LineNr"> 709 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L709'>test_or_EAX_with_imm32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -774,7 +774,7 @@ if ('onhashchange' in window) { <span id="L713" class="LineNr"> 713 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L714" class="LineNr"> 714 </span> <span class="Constant">" 0d 0a 0b 0c 0d \n"</span> <span class="Comment">// or 0x0d0c0b0a with EAX</span> <span id="L715" class="LineNr"> 715 </span> <span class="Delimiter">);</span> -<span id="L716" class="LineNr"> 716 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L716" class="LineNr"> 716 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L717" class="LineNr"> 717 </span> <span class="Constant">"run: or imm32 0x0d0c0b0a with EAX\n"</span> <span id="L718" class="LineNr"> 718 </span> <span class="Constant">"run: storing 0xddccbbaa\n"</span> <span id="L719" class="LineNr"> 719 </span> <span class="Delimiter">);</span> @@ -809,9 +809,9 @@ if ('onhashchange' in window) { <span id="L748" class="LineNr"> 748 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L749" class="LineNr"> 749 </span> <span class="Constant">"a0 b0 c0 d0\n"</span> <span class="Comment">// 0xd0c0b0a0</span> <span id="L750" class="LineNr"> 750 </span> <span class="Delimiter">);</span> -<span id="L751" class="LineNr"> 751 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L751" class="LineNr"> 751 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L752" class="LineNr"> 752 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L753" class="LineNr"> 753 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L753" class="LineNr"> 753 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L754" class="LineNr"> 754 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L755" class="LineNr"> 755 </span> <span class="Constant">"run: subop or\n"</span> <span id="L756" class="LineNr"> 756 </span> <span class="Constant">"run: storing 0xddccbbaa\n"</span> @@ -842,7 +842,7 @@ if ('onhashchange' in window) { <span id="L781" class="LineNr"> 781 </span> <span class="Constant">" 81 cb 0a 0b 0c 0d \n"</span> <span class="Comment">// or 0x0d0c0b0a with EBX</span> <span id="L782" class="LineNr"> 782 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 001 (subop or) 011 (dest EBX)</span> <span id="L783" class="LineNr"> 783 </span> <span class="Delimiter">);</span> -<span id="L784" class="LineNr"> 784 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L784" class="LineNr"> 784 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L785" class="LineNr"> 785 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L786" class="LineNr"> 786 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L787" class="LineNr"> 787 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> @@ -854,7 +854,7 @@ if ('onhashchange' in window) { <span id="L793" class="LineNr"> 793 </span><span class="SalientComment">//:: xor</span> <span id="L794" class="LineNr"> 794 </span> <span id="L795" class="LineNr"> 795 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L796" class="LineNr"> 796 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"35"</span><span class="Delimiter">,</span> <span class="Constant">"EAX = bitwise XOR of imm32 with <a href='010---vm.cc.html#L16'>EAX</a> (xor)"</span><span class="Delimiter">);</span> +<span id="L796" class="LineNr"> 796 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"35"</span><span class="Delimiter">,</span> <span class="Constant">"EAX = bitwise XOR of imm32 with <a href='010---vm.cc.html#L16'>EAX</a> (xor)"</span><span class="Delimiter">);</span> <span id="L797" class="LineNr"> 797 </span> <span id="L798" class="LineNr"> 798 </span><span class="Delimiter">:(code)</span> <span id="L799" class="LineNr"> 799 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L799'>test_xor_EAX_with_imm32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -864,7 +864,7 @@ if ('onhashchange' in window) { <span id="L803" class="LineNr"> 803 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L804" class="LineNr"> 804 </span> <span class="Constant">" 35 0a 0b 0c 0d \n"</span> <span class="Comment">// xor 0x0d0c0b0a with EAX</span> <span id="L805" class="LineNr"> 805 </span> <span class="Delimiter">);</span> -<span id="L806" class="LineNr"> 806 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L806" class="LineNr"> 806 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L807" class="LineNr"> 807 </span> <span class="Constant">"run: xor imm32 0x0d0c0b0a with EAX\n"</span> <span id="L808" class="LineNr"> 808 </span> <span class="Constant">"run: storing 0xd0c0bbaa\n"</span> <span id="L809" class="LineNr"> 809 </span> <span class="Delimiter">);</span> @@ -899,9 +899,9 @@ if ('onhashchange' in window) { <span id="L838" class="LineNr"> 838 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L839" class="LineNr"> 839 </span> <span class="Constant">"a0 b0 c0 d0\n"</span> <span class="Comment">// 0xd0c0b0a0</span> <span id="L840" class="LineNr"> 840 </span> <span class="Delimiter">);</span> -<span id="L841" class="LineNr"> 841 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L841" class="LineNr"> 841 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L842" class="LineNr"> 842 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L843" class="LineNr"> 843 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L843" class="LineNr"> 843 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L844" class="LineNr"> 844 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L845" class="LineNr"> 845 </span> <span class="Constant">"run: subop xor\n"</span> <span id="L846" class="LineNr"> 846 </span> <span class="Constant">"run: storing 0xddccbbaa\n"</span> @@ -932,7 +932,7 @@ if ('onhashchange' in window) { <span id="L871" class="LineNr"> 871 </span> <span class="Constant">" 81 f3 0a 0b 0c 0d \n"</span> <span class="Comment">// xor 0x0d0c0b0a with EBX</span> <span id="L872" class="LineNr"> 872 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 110 (subop xor) 011 (dest EBX)</span> <span id="L873" class="LineNr"> 873 </span> <span class="Delimiter">);</span> -<span id="L874" class="LineNr"> 874 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L874" class="LineNr"> 874 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L875" class="LineNr"> 875 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L876" class="LineNr"> 876 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L877" class="LineNr"> 877 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> @@ -944,7 +944,7 @@ if ('onhashchange' in window) { <span id="L883" class="LineNr"> 883 </span><span class="SalientComment">//:: compare (cmp)</span> <span id="L884" class="LineNr"> 884 </span> <span id="L885" class="LineNr"> 885 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L886" class="LineNr"> 886 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"3d"</span><span class="Delimiter">,</span> <span class="Constant">"compare: set SF if <a href='010---vm.cc.html#L16'>EAX</a> < imm32 (cmp)"</span><span class="Delimiter">);</span> +<span id="L886" class="LineNr"> 886 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"3d"</span><span class="Delimiter">,</span> <span class="Constant">"compare: set SF if <a href='010---vm.cc.html#L16'>EAX</a> < imm32 (cmp)"</span><span class="Delimiter">);</span> <span id="L887" class="LineNr"> 887 </span> <span id="L888" class="LineNr"> 888 </span><span class="Delimiter">:(code)</span> <span id="L889" class="LineNr"> 889 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L889'>test_compare_EAX_with_imm32_greater</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -954,7 +954,7 @@ if ('onhashchange' in window) { <span id="L893" class="LineNr"> 893 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L894" class="LineNr"> 894 </span> <span class="Constant">" 3d 07 0b 0c 0d \n"</span> <span class="Comment">// compare EAX with 0x0d0c0b07</span> <span id="L895" class="LineNr"> 895 </span> <span class="Delimiter">);</span> -<span id="L896" class="LineNr"> 896 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L896" class="LineNr"> 896 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L897" class="LineNr"> 897 </span> <span class="Constant">"run: compare <a href='010---vm.cc.html#L16'>EAX</a> with imm32 0x0d0c0b07\n"</span> <span id="L898" class="LineNr"> 898 </span> <span class="Constant">"run: SF=0; ZF=0; CF=0; OF=0\n"</span> <span id="L899" class="LineNr"> 899 </span> <span class="Delimiter">);</span> @@ -987,7 +987,7 @@ if ('onhashchange' in window) { <span id="L926" class="LineNr"> 926 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L927" class="LineNr"> 927 </span> <span class="Constant">" 3d 0d 0c 0b 0a \n"</span> <span class="Comment">// compare EAX with imm32</span> <span id="L928" class="LineNr"> 928 </span> <span class="Delimiter">);</span> -<span id="L929" class="LineNr"> 929 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L929" class="LineNr"> 929 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L930" class="LineNr"> 930 </span> <span class="Constant">"run: compare <a href='010---vm.cc.html#L16'>EAX</a> with imm32 0x0a0b0c0d\n"</span> <span id="L931" class="LineNr"> 931 </span> <span class="Constant">"run: SF=1; ZF=0; CF=1; OF=0\n"</span> <span id="L932" class="LineNr"> 932 </span> <span class="Delimiter">);</span> @@ -1000,7 +1000,7 @@ if ('onhashchange' in window) { <span id="L939" class="LineNr"> 939 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L940" class="LineNr"> 940 </span> <span class="Constant">" 3d 00 00 00 80\n"</span> <span class="Comment">// compare EAX with smallest negative signed integer</span> <span id="L941" class="LineNr"> 941 </span> <span class="Delimiter">);</span> -<span id="L942" class="LineNr"> 942 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L942" class="LineNr"> 942 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L943" class="LineNr"> 943 </span> <span class="Constant">"run: compare <a href='010---vm.cc.html#L16'>EAX</a> with imm32 0x80000000\n"</span> <span id="L944" class="LineNr"> 944 </span> <span class="Constant">"run: SF=1; ZF=0; CF=1; OF=1\n"</span> <span id="L945" class="LineNr"> 945 </span> <span class="Delimiter">);</span> @@ -1013,7 +1013,7 @@ if ('onhashchange' in window) { <span id="L952" class="LineNr"> 952 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L953" class="LineNr"> 953 </span> <span class="Constant">" 3d 01 00 00 00\n"</span> <span class="Comment">// compare EAX with 1</span> <span id="L954" class="LineNr"> 954 </span> <span class="Delimiter">);</span> -<span id="L955" class="LineNr"> 955 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L955" class="LineNr"> 955 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L956" class="LineNr"> 956 </span> <span class="Constant">"run: compare <a href='010---vm.cc.html#L16'>EAX</a> with imm32 0x00000001\n"</span> <span id="L957" class="LineNr"> 957 </span> <span class="Constant">"run: SF=1; ZF=0; CF=0; OF=0\n"</span> <span id="L958" class="LineNr"> 958 </span> <span class="Delimiter">);</span> @@ -1026,7 +1026,7 @@ if ('onhashchange' in window) { <span id="L965" class="LineNr"> 965 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L966" class="LineNr"> 966 </span> <span class="Constant">" 3d ff ff ff ff\n"</span> <span class="Comment">// compare EAX with -1</span> <span id="L967" class="LineNr"> 967 </span> <span class="Delimiter">);</span> -<span id="L968" class="LineNr"> 968 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L968" class="LineNr"> 968 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L969" class="LineNr"> 969 </span> <span class="Constant">"run: compare <a href='010---vm.cc.html#L16'>EAX</a> with imm32 0xffffffff\n"</span> <span id="L970" class="LineNr"> 970 </span> <span class="Constant">"run: SF=0; ZF=0; CF=1; OF=0\n"</span> <span id="L971" class="LineNr"> 971 </span> <span class="Delimiter">);</span> @@ -1039,7 +1039,7 @@ if ('onhashchange' in window) { <span id="L978" class="LineNr"> 978 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L979" class="LineNr"> 979 </span> <span class="Constant">" 3d 0a 0b 0c 0d \n"</span> <span class="Comment">// compare 0x0d0c0b0a with EAX</span> <span id="L980" class="LineNr"> 980 </span> <span class="Delimiter">);</span> -<span id="L981" class="LineNr"> 981 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L981" class="LineNr"> 981 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L982" class="LineNr"> 982 </span> <span class="Constant">"run: compare <a href='010---vm.cc.html#L16'>EAX</a> with imm32 0x0d0c0b0a\n"</span> <span id="L983" class="LineNr"> 983 </span> <span class="Constant">"run: SF=0; ZF=1; CF=0; OF=0\n"</span> <span id="L984" class="LineNr"> 984 </span> <span class="Delimiter">);</span> @@ -1055,7 +1055,7 @@ if ('onhashchange' in window) { <span id="L994" class="LineNr"> 994 </span> <span class="Constant">" 81 fb 07 0b 0c 0d \n"</span> <span class="Comment">// compare 0x0d0c0b07 with EBX</span> <span id="L995" class="LineNr"> 995 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop compare) 011 (dest EBX)</span> <span id="L996" class="LineNr"> 996 </span> <span class="Delimiter">);</span> -<span id="L997" class="LineNr"> 997 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L997" class="LineNr"> 997 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L998" class="LineNr"> 998 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L999" class="LineNr"> 999 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L1000" class="LineNr">1000 </span> <span class="Constant">"run: imm32 is 0x0d0c0b07\n"</span> @@ -1089,7 +1089,7 @@ if ('onhashchange' in window) { <span id="L1028" class="LineNr">1028 </span> <span class="Constant">" 81 f8 0d 0c 0b 0a \n"</span> <span class="Comment">// compare EAX with imm32</span> <span id="L1029" class="LineNr">1029 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)</span> <span id="L1030" class="LineNr">1030 </span> <span class="Delimiter">);</span> -<span id="L1031" class="LineNr">1031 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1031" class="LineNr">1031 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1032" class="LineNr">1032 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L1033" class="LineNr">1033 </span> <span class="Constant">"run: r/m32 is EAX\n"</span> <span id="L1034" class="LineNr">1034 </span> <span class="Constant">"run: imm32 is 0x0a0b0c0d\n"</span> @@ -1106,7 +1106,7 @@ if ('onhashchange' in window) { <span id="L1045" class="LineNr">1045 </span> <span class="Constant">" 81 f8 00 00 00 80\n"</span> <span class="Comment">// compare EAX with smallest negative signed integer</span> <span id="L1046" class="LineNr">1046 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)</span> <span id="L1047" class="LineNr">1047 </span> <span class="Delimiter">);</span> -<span id="L1048" class="LineNr">1048 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1048" class="LineNr">1048 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1049" class="LineNr">1049 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L1050" class="LineNr">1050 </span> <span class="Constant">"run: r/m32 is EAX\n"</span> <span id="L1051" class="LineNr">1051 </span> <span class="Constant">"run: imm32 is 0x80000000\n"</span> @@ -1123,7 +1123,7 @@ if ('onhashchange' in window) { <span id="L1062" class="LineNr">1062 </span> <span class="Constant">" 81 f8 01 00 00 00\n"</span> <span class="Comment">// compare EAX with 1</span> <span id="L1063" class="LineNr">1063 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)</span> <span id="L1064" class="LineNr">1064 </span> <span class="Delimiter">);</span> -<span id="L1065" class="LineNr">1065 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1065" class="LineNr">1065 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1066" class="LineNr">1066 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L1067" class="LineNr">1067 </span> <span class="Constant">"run: r/m32 is EAX\n"</span> <span id="L1068" class="LineNr">1068 </span> <span class="Constant">"run: imm32 is 0x00000001\n"</span> @@ -1140,7 +1140,7 @@ if ('onhashchange' in window) { <span id="L1079" class="LineNr">1079 </span> <span class="Constant">" 81 f8 ff ff ff ff\n"</span> <span class="Comment">// compare EAX with -1</span> <span id="L1080" class="LineNr">1080 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)</span> <span id="L1081" class="LineNr">1081 </span> <span class="Delimiter">);</span> -<span id="L1082" class="LineNr">1082 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1082" class="LineNr">1082 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1083" class="LineNr">1083 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L1084" class="LineNr">1084 </span> <span class="Constant">"run: r/m32 is EAX\n"</span> <span id="L1085" class="LineNr">1085 </span> <span class="Constant">"run: imm32 is 0xffffffff\n"</span> @@ -1158,7 +1158,7 @@ if ('onhashchange' in window) { <span id="L1097" class="LineNr">1097 </span> <span class="Constant">" 81 fb 0a 0b 0c 0d \n"</span> <span class="Comment">// compare 0x0d0c0b0a with EBX</span> <span id="L1098" class="LineNr">1098 </span> <span class="Comment">// ModR/M in binary: 11 (direct mode) 111 (subop compare) 011 (dest EBX)</span> <span id="L1099" class="LineNr">1099 </span> <span class="Delimiter">);</span> -<span id="L1100" class="LineNr">1100 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1100" class="LineNr">1100 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1101" class="LineNr">1101 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> <span id="L1102" class="LineNr">1102 </span> <span class="Constant">"run: r/m32 is EBX\n"</span> <span id="L1103" class="LineNr">1103 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> @@ -1177,9 +1177,9 @@ if ('onhashchange' in window) { <span id="L1116" class="LineNr">1116 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L1117" class="LineNr">1117 </span> <span class="Constant">"0a 0b 0c 0d\n"</span> <span class="Comment">// 0x0d0c0b0a</span> <span id="L1118" class="LineNr">1118 </span> <span class="Delimiter">);</span> -<span id="L1119" class="LineNr">1119 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1119" class="LineNr">1119 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1120" class="LineNr">1120 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L1121" class="LineNr">1121 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L1121" class="LineNr">1121 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L1122" class="LineNr">1122 </span> <span class="Constant">"run: imm32 is 0x0d0c0b07\n"</span> <span id="L1123" class="LineNr">1123 </span> <span class="Constant">"run: SF=0; ZF=0; CF=0; OF=0\n"</span> <span id="L1124" class="LineNr">1124 </span> <span class="Delimiter">);</span> @@ -1196,9 +1196,9 @@ if ('onhashchange' in window) { <span id="L1135" class="LineNr">1135 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L1136" class="LineNr">1136 </span> <span class="Constant">"07 0b 0c 0d\n"</span> <span class="Comment">// 0x0d0c0b07</span> <span id="L1137" class="LineNr">1137 </span> <span class="Delimiter">);</span> -<span id="L1138" class="LineNr">1138 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1138" class="LineNr">1138 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1139" class="LineNr">1139 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L1140" class="LineNr">1140 </span> <span class="Constant">"run: effective address is 0x00002000 (EAX)\n"</span> +<span id="L1140" class="LineNr">1140 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L16'>EAX</a>)\n"</span> <span id="L1141" class="LineNr">1141 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L1142" class="LineNr">1142 </span> <span class="Constant">"run: SF=1; ZF=0; CF=1; OF=0\n"</span> <span id="L1143" class="LineNr">1143 </span> <span class="Delimiter">);</span> @@ -1216,9 +1216,9 @@ if ('onhashchange' in window) { <span id="L1155" class="LineNr">1155 </span> <span class="Constant">"== data 0x2000\n"</span> <span id="L1156" class="LineNr">1156 </span> <span class="Constant">"0a 0b 0c 0d\n"</span> <span class="Comment">// 0x0d0c0b0a</span> <span id="L1157" class="LineNr">1157 </span> <span class="Delimiter">);</span> -<span id="L1158" class="LineNr">1158 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1158" class="LineNr">1158 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1159" class="LineNr">1159 </span> <span class="Constant">"run: combine r/m32 with imm32\n"</span> -<span id="L1160" class="LineNr">1160 </span> <span class="Constant">"run: effective address is 0x00002000 (EBX)\n"</span> +<span id="L1160" class="LineNr">1160 </span> <span class="Constant">"run: effective address is 0x00002000 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L1161" class="LineNr">1161 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L1162" class="LineNr">1162 </span> <span class="Constant">"run: SF=0; ZF=1; CF=0; OF=0\n"</span> <span id="L1163" class="LineNr">1163 </span> <span class="Delimiter">);</span> @@ -1228,13 +1228,13 @@ if ('onhashchange' in window) { <span id="L1167" class="LineNr">1167 </span> <span id="L1168" class="LineNr">1168 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> <span id="L1169" class="LineNr">1169 </span><span class="Comment">// b8 defined earlier to copy imm32 to EAX</span> -<span id="L1170" class="LineNr">1170 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"b9"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L17'>ECX</a> (mov)"</span><span class="Delimiter">);</span> -<span id="L1171" class="LineNr">1171 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"ba"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L18'>EDX</a> (mov)"</span><span class="Delimiter">);</span> -<span id="L1172" class="LineNr">1172 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bb"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L19'>EBX</a> (mov)"</span><span class="Delimiter">);</span> -<span id="L1173" class="LineNr">1173 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bc"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L20'>ESP</a> (mov)"</span><span class="Delimiter">);</span> -<span id="L1174" class="LineNr">1174 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bd"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L21'>EBP</a> (mov)"</span><span class="Delimiter">);</span> -<span id="L1175" class="LineNr">1175 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"be"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L22'>ESI</a> (mov)"</span><span class="Delimiter">);</span> -<span id="L1176" class="LineNr">1176 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bf"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L23'>EDI</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1170" class="LineNr">1170 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"b9"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L17'>ECX</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1171" class="LineNr">1171 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"ba"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L18'>EDX</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1172" class="LineNr">1172 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bb"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L19'>EBX</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1173" class="LineNr">1173 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bc"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L20'>ESP</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1174" class="LineNr">1174 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bd"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L21'>EBP</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1175" class="LineNr">1175 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"be"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L22'>ESI</a> (mov)"</span><span class="Delimiter">);</span> +<span id="L1176" class="LineNr">1176 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"bf"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to <a href='010---vm.cc.html#L23'>EDI</a> (mov)"</span><span class="Delimiter">);</span> <span id="L1177" class="LineNr">1177 </span> <span id="L1178" class="LineNr">1178 </span><span class="Delimiter">:(code)</span> <span id="L1179" class="LineNr">1179 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L1179'>test_copy_imm32_to_r32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -1243,7 +1243,7 @@ if ('onhashchange' in window) { <span id="L1182" class="LineNr">1182 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L1183" class="LineNr">1183 </span> <span class="Constant">" bb 0a 0b 0c 0d \n"</span> <span class="Comment">// copy 0x0d0c0b0a to EBX</span> <span id="L1184" class="LineNr">1184 </span> <span class="Delimiter">);</span> -<span id="L1185" class="LineNr">1185 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1185" class="LineNr">1185 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1186" class="LineNr">1186 </span> <span class="Constant">"run: copy imm32 0x0d0c0b0a to EBX\n"</span> <span id="L1187" class="LineNr">1187 </span> <span class="Delimiter">);</span> <span id="L1188" class="LineNr">1188 </span><span class="Delimiter">}</span> @@ -1266,7 +1266,7 @@ if ('onhashchange' in window) { <span id="L1205" class="LineNr">1205 </span><span class="Comment">//:</span> <span id="L1206" class="LineNr">1206 </span> <span id="L1207" class="LineNr">1207 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L1208" class="LineNr">1208 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"c7"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to rm32 (mov)"</span><span class="Delimiter">);</span> +<span id="L1208" class="LineNr">1208 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"c7"</span><span class="Delimiter">,</span> <span class="Constant">"copy imm32 to rm32 with subop 0 (mov)"</span><span class="Delimiter">);</span> <span id="L1209" class="LineNr">1209 </span> <span id="L1210" class="LineNr">1210 </span><span class="Delimiter">:(code)</span> <span id="L1211" class="LineNr">1211 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L1211'>test_copy_imm32_to_mem_at_r32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -1275,11 +1275,11 @@ if ('onhashchange' in window) { <span id="L1214" class="LineNr">1214 </span> <span class="Constant">"== code 0x1\n"</span> <span id="L1215" class="LineNr">1215 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L1216" class="LineNr">1216 </span> <span class="Constant">" c7 03 0a 0b 0c 0d \n"</span> <span class="Comment">// copy 0x0d0c0b0a to *EBX</span> -<span id="L1217" class="LineNr">1217 </span> <span class="Comment">// ModR/M in binary: 00 (indirect mode) 000 (unused) 011 (dest EBX)</span> +<span id="L1217" class="LineNr">1217 </span> <span class="Comment">// ModR/M in binary: 00 (indirect mode) 000 (subop) 011 (dest EBX)</span> <span id="L1218" class="LineNr">1218 </span> <span class="Delimiter">);</span> -<span id="L1219" class="LineNr">1219 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1219" class="LineNr">1219 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> <span id="L1220" class="LineNr">1220 </span> <span class="Constant">"run: copy imm32 to r/m32\n"</span> -<span id="L1221" class="LineNr">1221 </span> <span class="Constant">"run: effective address is 0x00000060 (EBX)\n"</span> +<span id="L1221" class="LineNr">1221 </span> <span class="Constant">"run: effective address is 0x00000060 (<a href='010---vm.cc.html#L19'>EBX</a>)\n"</span> <span id="L1222" class="LineNr">1222 </span> <span class="Constant">"run: imm32 is 0x0d0c0b0a\n"</span> <span id="L1223" class="LineNr">1223 </span> <span class="Delimiter">);</span> <span id="L1224" class="LineNr">1224 </span><span class="Delimiter">}</span> @@ -1303,7 +1303,7 @@ if ('onhashchange' in window) { <span id="L1242" class="LineNr">1242 </span><span class="SalientComment">//:: push</span> <span id="L1243" class="LineNr">1243 </span> <span id="L1244" class="LineNr">1244 </span><span class="Delimiter">:(before "End Initialize Op Names")</span> -<span id="L1245" class="LineNr">1245 </span><a href='001help.cc.html#L260'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"68"</span><span class="Delimiter">,</span> <span class="Constant">"push imm32 to stack (push)"</span><span class="Delimiter">);</span> +<span id="L1245" class="LineNr">1245 </span><a href='001help.cc.html#L265'>put_new</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L348'>Name</a></span><span class="Delimiter">,</span> <span class="Constant">"68"</span><span class="Delimiter">,</span> <span class="Constant">"push imm32 to stack (<a href='012elf.cc.html#L94'>push</a>)"</span><span class="Delimiter">);</span> <span id="L1246" class="LineNr">1246 </span> <span id="L1247" class="LineNr">1247 </span><span class="Delimiter">:(code)</span> <span id="L1248" class="LineNr">1248 </span><span class="Normal">void</span> <a href='015immediate_addressing.cc.html#L1248'>test_push_imm32</a><span class="Delimiter">()</span> <span class="Delimiter">{</span> @@ -1314,8 +1314,8 @@ if ('onhashchange' in window) { <span id="L1253" class="LineNr">1253 </span> <span class="Comment">// op ModR/M SIB displacement immediate</span> <span id="L1254" class="LineNr">1254 </span> <span class="Constant">" 68 af 00 00 00 \n"</span> <span class="Comment">// push *EAX to stack</span> <span id="L1255" class="LineNr">1255 </span> <span class="Delimiter">);</span> -<span id="L1256" class="LineNr">1256 </span> <a href='003trace.cc.html#L290'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> -<span id="L1257" class="LineNr">1257 </span> <span class="Constant">"run: <a href='012elf.cc.html#L92'>push</a> imm32 0x000000af\n"</span> +<span id="L1256" class="LineNr">1256 </span> <a href='003trace.cc.html#L292'>CHECK_TRACE_CONTENTS</a><span class="Delimiter">(</span> +<span id="L1257" class="LineNr">1257 </span> <span class="Constant">"run: <a href='012elf.cc.html#L94'>push</a> imm32 0x000000af\n"</span> <span id="L1258" class="LineNr">1258 </span> <span class="Constant">"run: <a href='010---vm.cc.html#L20'>ESP</a> is now 0xbd000010\n"</span> <span id="L1259" class="LineNr">1259 </span> <span class="Constant">"run: <a href='003trace.cc.html#L117'>contents</a> at <a href='010---vm.cc.html#L20'>ESP</a>: 0x000000af\n"</span> <span id="L1260" class="LineNr">1260 </span> <span class="Delimiter">);</span> @@ -1326,7 +1326,7 @@ if ('onhashchange' in window) { <span id="L1265" class="LineNr">1265 </span> <span class="Normal">const</span> <span class="Normal">uint32_t</span> val = <span class="Normal">static_cast</span><<span class="Normal">uint32_t</span>><span class="Delimiter">(</span><a href='011run.cc.html#L447'>next32</a><span class="Delimiter">());</span> <span id="L1266" class="LineNr">1266 </span> <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span><span class="Special">Callstack_depth</span>+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">"run"</span><span class="Delimiter">)</span> << <span class="Constant">"push imm32 0x"</span> << <a href='010---vm.cc.html#L401'>HEXWORD</a> << val << end<span class="Delimiter">();</span> <span id="L1267" class="LineNr">1267 </span><span class="CommentedCode">//? cerr << "push: " << val << " => " << Reg[ESP].u << '\n';</span> -<span id="L1268" class="LineNr">1268 </span> <a href='012elf.cc.html#L92'>push</a><span class="Delimiter">(</span>val<span class="Delimiter">);</span> +<span id="L1268" class="LineNr">1268 </span> <a href='012elf.cc.html#L94'>push</a><span class="Delimiter">(</span>val<span class="Delimiter">);</span> <span id="L1269" class="LineNr">1269 </span> <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span><span class="Special">Callstack_depth</span>+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">"run"</span><span class="Delimiter">)</span> << <span class="Constant">"ESP is now 0x"</span> << <a href='010---vm.cc.html#L401'>HEXWORD</a> << <span class="Special"><a href='010---vm.cc.html#L31'>Reg</a></span>[ESP]<span class="Delimiter">.</span>u << end<span class="Delimiter">();</span> <span id="L1270" class="LineNr">1270 </span> <a href='003trace.cc.html#L96'>trace</a><span class="Delimiter">(</span><span class="Special">Callstack_depth</span>+<span class="Constant">1</span><span class="Delimiter">,</span> <span class="Constant">"run"</span><span class="Delimiter">)</span> << <span class="Constant">"contents at <a href='010---vm.cc.html#L20'>ESP</a>: 0x"</span> << <a href='010---vm.cc.html#L401'>HEXWORD</a> << <a href='010---vm.cc.html#L178'>read_mem_u32</a><span class="Delimiter">(</span><span class="Special"><a href='010---vm.cc.html#L31'>Reg</a></span>[ESP]<span class="Delimiter">.</span>u<span class="Delimiter">)</span> << end<span class="Delimiter">();</span> <span id="L1271" class="LineNr">1271 </span> <span class="Identifier">break</span><span class="Delimiter">;</span> |