}
if (has_sib_byte) {
- instr_cursor += 1;
struct sib_byte * sib = (struct sib_byte *)(instr_cursor);
int scale = 0x1 << sib->scale;
case 5:
if (modrm->mod != 0) {
base_addr += ADDR_MASK(gprs->rbp, 4);
+ } else {
+ mod_mode = DISP32;
+ base_addr = 0;
}
break;
case 6:
}
if (has_sib_byte) {
- instr_cursor += 1;
struct sib_byte * sib = (struct sib_byte *)(instr_cursor);
int scale = 0x1 << sib->scale;
uint8_t index_val = sib->index;
case 5:
if (modrm->mod != 0) {
base_addr += gprs->rbp;
+ } else {
+ mod_mode = DISP32;
+ base_addr = 0;
}
break;
case 6: