diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2018-01-24 21:34:25 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2018-01-24 21:38:08 -0800 |
commit | 3639efce2021fce6c49f34ce90a6f84fbe6f8fa6 (patch) | |
tree | 3ca7adc4bc9f95b4929a8d78d0c32534eff9d35d /subx/014index_addressing.cc | |
parent | dcfbf7a4f5fca29865b3119c474589b18e8dd8b6 (diff) | |
download | mu-3639efce2021fce6c49f34ce90a6f84fbe6f8fa6.tar.gz |
4193
Diffstat (limited to 'subx/014index_addressing.cc')
-rw-r--r-- | subx/014index_addressing.cc | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/subx/014index_addressing.cc b/subx/014index_addressing.cc index 4788216b..9e432863 100644 --- a/subx/014index_addressing.cc +++ b/subx/014index_addressing.cc @@ -63,8 +63,6 @@ uint32_t effective_address_from_sib(uint8_t mod) { :(scenario add_r32_to_mem_at_displacement_using_sib) % Reg[3].i = 0x10; // source -% Reg[0].i = 0x5e; // dest base -% Reg[1].i = 0x2; // dest index % SET_WORD_IN_MEM(0x60, 1); # op ModR/M SIB displacement immediate 01 1c 25 60 00 00 00 # add EBX to *0x60 @@ -74,25 +72,3 @@ uint32_t effective_address_from_sib(uint8_t mod) { +run: effective address is initially 0x60 (disp32) +run: effective address is 0x60 +run: storing 0x00000011 - -//: - -:(scenario add_r32_to_mem_at_displacement) -% Reg[3].i = 0x10; // source -% Reg[0].i = 0x5e; // dest base -% Reg[1].i = 0x2; // dest index -% SET_WORD_IN_MEM(0x60, 1); -# op ModR/M SIB displacement immediate - 01 1d 60 00 00 00 # add EBX to *0x60 -# ModR/M in binary: 00 (indirect mode) 011 (src EBX) 101 (dest in disp32) -+run: add EBX to r/m32 -+run: effective address is 0x60 (disp32) -+run: storing 0x00000011 - -:(before "End Mod 0 Special-cases") -case 5: { // exception: mod 0b00 rm 0b101 => incoming disp32 - uint32_t addr = imm32(); - result = reinterpret_cast<int32_t*>(&Mem.at(addr)); - trace(2, "run") << "effective address is 0x" << std::hex << addr << " (disp32)" << end(); - break; -} |