emu: CMC/CLC/STC/CLD/STC instructions. POPF flags differ from Eager

This commit is contained in:
2021-04-04 00:53:05 -07:00
parent 67b5b7a615
commit 647841469d
3 changed files with 73 additions and 16 deletions

View File

@@ -548,6 +548,11 @@ impl i8088 {
0xE8 => call[reg=ip, bus, regval=ss, reg=sp, rel16] / 23,
0xF2 => nop[rep=NotEqual, prefix] / 0, // REPNE/REPNZ
0xF3 => nop[rep=Equal, prefix] / 0, // REP/REPE/REPZ
0xF5 => cmc[flags] / 2, // CMC (Complement Carry Flag)
0xF8 => clc[flags] / 2, // CLC (Clear Carry Flag)
0xF9 => stc[flags] / 2, // STC (Set Carry Flag)
0xFC => cld[flags] / 2, // CLD (Clear Direction Flag)
0xFD => std[flags] / 2, // STD (Set Direction Flag)
0xFE: { 0x00 => inc[form=byte1, flags, modrm8] / "3/23+", // INC r/m8
0x08 => dec[form=byte1, flags, modrm8] / "3/23+", }, // DEC r/m8
0xFF: { 0x00 => inc[form=word1, flags, modrm16] / "3/23+", // INC r/m16