Not sure how I missed the R_RM8 and R_RM16 decoder.
This commit is contained in:
parent
c90b99d650
commit
6f539fff1e
@ -1190,6 +1190,24 @@ int nec_decode_instruction(uint16_t segment, uint16_t offset, char *buffer, unsi
|
|||||||
strncat(buffer, buf, bufferSize);
|
strncat(buffer, buf, bufferSize);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PR_R_RM8:
|
||||||
|
param1 = cpu_readmem20(MAKE_LINEAR(segment, currentOffset));
|
||||||
|
currentOffset++;
|
||||||
|
get_mod_reg_rm(param1, NULL, ®, NULL, &modrm);
|
||||||
|
snprintf(buf, 63, " %s,", modrmReg8List[reg]);
|
||||||
|
strncat(buffer, buf, bufferSize);
|
||||||
|
currentOffset += decode_modrm(segment, currentOffset, modrm, true, buffer, bufferSize);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PR_R_RM16:
|
||||||
|
param1 = cpu_readmem20(MAKE_LINEAR(segment, currentOffset));
|
||||||
|
currentOffset++;
|
||||||
|
get_mod_reg_rm(param1, NULL, ®, NULL, &modrm);
|
||||||
|
snprintf(buf, 63, " %s,", modrmReg16List[reg]);
|
||||||
|
strncat(buffer, buf, bufferSize);
|
||||||
|
currentOffset += decode_modrm(segment, currentOffset, modrm, false, buffer, bufferSize);
|
||||||
|
break;
|
||||||
|
|
||||||
case PR_RM16_SEG:
|
case PR_RM16_SEG:
|
||||||
param1 = cpu_readmem20(MAKE_LINEAR(segment, currentOffset));
|
param1 = cpu_readmem20(MAKE_LINEAR(segment, currentOffset));
|
||||||
currentOffset++;
|
currentOffset++;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user