1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-01-13 22:32:03 +00:00

Distinguishes inter- and intra-segment RET.

This commit is contained in:
Thomas Harte 2021-01-03 19:37:37 -05:00
parent 0ae217f51d
commit 782dc3d046
2 changed files with 8 additions and 2 deletions

View File

@ -182,6 +182,9 @@ Instruction Decoder::decode(uint8_t *source, size_t length) {
MapRegData(0xbc, MOV, true, SP); MapRegData(0xbd, MOV, true, BP);
MapRegData(0xbe, MOV, true, SI); MapRegData(0xbf, MOV, true, DI);
MapComplete(0xc3, RETIntra, None, None);
MapComplete(0xcb, RETInter, None, None);
// Other prefix bytes.
case 0xf0: lock_ = true; break;
case 0xf2: repetition_ = Repetition::RepNE; break;

View File

@ -37,9 +37,12 @@ enum class Operation: uint8_t {
JMP, JCXZ,
LAHF, LDS, LEA,
LODS, LOOPE, LOOPNE, MOV, MOVS, MUL, NEG, NOP, NOT, OR, OUT,
POP, POPF, PUSH, PUSHF, RCL, RCR, REP, RET, ROL, ROR, SAHF,
POP, POPF, PUSH, PUSHF, RCL, RCR, REP, ROL, ROR, SAHF,
SAR, SBB, SCAS, SHL, SHR, STC, STD, STI, STOS, SUB, TEST,
WAIT, XCHG, XLAT, XOR
WAIT, XCHG, XLAT, XOR,
RETInter,
RETIntra,
};
enum class Size: uint8_t {