diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-10-18 03:11:56 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-10-18 03:11:56 -0700 |
commit | 292ccba1bbdc8c2ec6cfacefa15f19c8d215b58c (patch) | |
tree | e26c501e0d2dc826777a14047d66a7ef4de5cc2a /subx/012indirect_addressing.cc | |
parent | 8a0268317fbce2baa2e5119c796750ea6c80a813 (diff) | |
download | mu-292ccba1bbdc8c2ec6cfacefa15f19c8d215b58c.tar.gz |
4085 - done with first cut of the SubX VM
subx: 'call' and 'return' instructions
Diffstat (limited to 'subx/012indirect_addressing.cc')
-rw-r--r-- | subx/012indirect_addressing.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/subx/012indirect_addressing.cc b/subx/012indirect_addressing.cc index f4e8c665..0acd7a1e 100644 --- a/subx/012indirect_addressing.cc +++ b/subx/012indirect_addressing.cc @@ -323,11 +323,11 @@ case 0x8b: { // copy r32 to r/m32 -run: inst: 0x00000003 :(before "End Single-Byte Opcodes") -case 0xff: { // jump to r/m32 +case 0xff: { uint8_t modrm = next(); uint8_t subop = (modrm>>3)&0x7; // middle 3 'reg opcode' bits switch (subop) { - case 4: { + case 4: { // jump to r/m32 trace(2, "run") << "jump to effective address" << end(); int32_t* arg2 = effective_address(modrm); EIP = *arg2; @@ -353,7 +353,7 @@ case 0xff: { // jump to r/m32 +run: pushing value 0x000000af :(before "End Op ff Subops") -case 6: { +case 6: { // push r/m32 to stack trace(2, "run") << "push effective address" << end(); const int32_t* val = effective_address(modrm); push(*val); |