diff options
author | Kartik Agaram <vc@akkartik.com> | 2019-05-15 00:48:48 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2019-05-15 00:48:48 -0700 |
commit | 4ff14e821ee86c40866a1400dc67a4206271b9b5 (patch) | |
tree | 98d1ec9f3b818d3e3e441e01a080bf3c8cdf73d9 /subx | |
parent | 6376008f9f59e3c8f077843848021fc064a233c9 (diff) | |
download | mu-4ff14e821ee86c40866a1400dc67a4206271b9b5.tar.gz |
5160
Diffstat (limited to 'subx')
-rw-r--r-- | subx/013direct_addressing.cc | 4 | ||||
-rw-r--r-- | subx/014indirect_addressing.cc | 8 | ||||
-rw-r--r-- | subx/015immediate_addressing.cc | 10 |
3 files changed, 6 insertions, 16 deletions
diff --git a/subx/013direct_addressing.cc b/subx/013direct_addressing.cc index 2914e0dd..3f7d40d6 100644 --- a/subx/013direct_addressing.cc +++ b/subx/013direct_addressing.cc @@ -338,7 +338,7 @@ void test_negate_r32() { run( "== 0x1\n" // code segment // op ModR/M SIB displacement immediate - " f7 db \n" // negate EBX + " f7 db \n" // negate EBX // ModR/M in binary: 11 (direct mode) 011 (subop negate) 011 (dest EBX) ); CHECK_TRACE_CONTENTS( @@ -375,7 +375,7 @@ void test_negate_can_overflow() { run( "== 0x1\n" // code segment // op ModR/M SIB displacement immediate - " f7 db \n" // negate EBX + " f7 db \n" // negate EBX // ModR/M in binary: 11 (direct mode) 011 (subop negate) 011 (dest EBX) ); CHECK_TRACE_CONTENTS( diff --git a/subx/014indirect_addressing.cc b/subx/014indirect_addressing.cc index a281921f..ce523b3f 100644 --- a/subx/014indirect_addressing.cc +++ b/subx/014indirect_addressing.cc @@ -7,7 +7,7 @@ void test_add_r32_to_mem_at_r32() { run( "== 0x1\n" // code segment // op ModR/M SIB displacement immediate - " 01 18 \n" // add EBX to *EAX + " 01 18 \n" // add EBX to *EAX // ModR/M in binary: 00 (indirect mode) 011 (src EAX) 000 (dest EAX) "== 0x2000\n" // data segment "01 00 00 00\n" // 0x00000001 @@ -42,7 +42,7 @@ void test_add_mem_at_r32_to_r32() { run( "== 0x1\n" // code segment // op ModR/M SIB displacement immediate - " 03 18 \n" // add *EAX to EBX + " 03 18 \n" // add *EAX to EBX // ModR/M in binary: 00 (indirect mode) 011 (src EAX) 000 (dest EAX) "== 0x2000\n" // data segment "01 00 00 00\n" // 0x00000001 @@ -146,7 +146,7 @@ void test_subtract_r32_from_mem_at_r32() { run( "== 0x1\n" // code segment // op ModR/M SIB displacement immediate - " 29 18 \n" // subtract EBX from *EAX + " 29 18 \n" // subtract EBX from *EAX // ModR/M in binary: 00 (indirect mode) 011 (src EAX) 000 (dest EAX) "== 0x2000\n" // data segment "0a 00 00 00\n" // 0x0000000a @@ -336,7 +336,7 @@ void test_or_r32_with_mem_at_r32() { run( "== 0x1\n" // code segment // op ModR/M SIB displacement immediate - " 09 18 #\n" // EBX with *EAX + " 09 18 #\n" // EBX with *EAX // ModR/M in binary: 00 (indirect mode) 011 (src EAX) 000 (dest EAX) "== 0x2000\n" // data segment "0d 0c 0b 0a\n" // 0x0a0b0c0d diff --git a/subx/015immediate_addressing.cc b/subx/015immediate_addressing.cc index 4212b80f..8a5a3c20 100644 --- a/subx/015immediate_addressing.cc +++ b/subx/015immediate_addressing.cc @@ -30,7 +30,6 @@ void test_add_imm32_to_EAX_signed_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 05 01 00 00 00 \n" // add 1 to EAX - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: add imm32 0x00000001 to EAX\n" @@ -46,7 +45,6 @@ void test_add_imm32_to_EAX_unsigned_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 05 01 00 00 00 \n" // add 1 to EAX - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: add imm32 0x00000001 to EAX\n" @@ -61,7 +59,6 @@ void test_add_imm32_to_EAX_unsigned_and_signed_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 05 00 00 00 80 \n" // add 0x80000000 to EAX - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: add imm32 0x80000000 to EAX\n" @@ -251,7 +248,6 @@ void test_subtract_imm32_from_EAX_signed_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 2d ff ff ff 7f \n" // subtract largest positive signed integer from EAX - // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX) ); CHECK_TRACE_CONTENTS( "run: subtract imm32 0x7fffffff from EAX\n" @@ -266,7 +262,6 @@ void test_subtract_imm32_from_EAX_unsigned_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 2d 01 00 00 00 \n" // subtract 1 from EAX - // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX) ); CHECK_TRACE_CONTENTS( "run: subtract imm32 0x00000001 from EAX\n" @@ -281,7 +276,6 @@ void test_subtract_imm32_from_EAX_signed_and_unsigned_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 2d 00 00 00 80 \n" // subtract smallest negative signed integer from EAX - // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX) ); CHECK_TRACE_CONTENTS( "run: subtract imm32 0x80000000 from EAX\n" @@ -923,7 +917,6 @@ void test_compare_EAX_with_imm32_lesser_unsigned_and_signed() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 3d 0d 0c 0b 0a \n" // compare EAX with imm32 - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: compare EAX with imm32 0x0a0b0c0d\n" @@ -937,7 +930,6 @@ void test_compare_EAX_with_imm32_lesser_unsigned_and_signed_due_to_overflow() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 3d 00 00 00 80\n" // compare EAX with smallest negative signed integer - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: compare EAX with imm32 0x80000000\n" @@ -951,7 +943,6 @@ void test_compare_EAX_with_imm32_lesser_signed() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 3d 01 00 00 00\n" // compare EAX with 1 - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: compare EAX with imm32 0x00000001\n" @@ -965,7 +956,6 @@ void test_compare_EAX_with_imm32_lesser_unsigned() { "== 0x1\n" // code segment // op ModR/M SIB displacement immediate " 3d ff ff ff ff\n" // compare EAX with -1 - // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX) ); CHECK_TRACE_CONTENTS( "run: compare EAX with imm32 0xffffffff\n" |