1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-18 17:06:15 +00:00

Implement JCXZ.

This commit is contained in:
Thomas Harte 2023-10-18 13:20:28 -04:00
parent 90f49a6e73
commit a8c7871b0c
2 changed files with 8 additions and 8 deletions

View File

@ -1452,6 +1452,10 @@ template <
case Operation::JMPrel: jcc(true); return;
case Operation::JMPabs: Primitive::jump_absolute(destination(), flow_controller); return;
case Operation::JMPfar: Primitive::jump_far<model>(instruction, flow_controller, registers, memory); return;
case Operation::JCXZ:
// TODO: use ECX rather than CX if address size is 32-bit.
jcc(!registers.cx());
return;
case Operation::IRET: Primitive::iret(registers, flow_controller, memory, status); return;
case Operation::RETnear: Primitive::ret_near(instruction, registers, flow_controller, memory); return;

View File

@ -375,18 +375,14 @@ struct FailedExecution {
@"C3.json.gz", @"C2.json.gz", // near RET
@"CB.json.gz", @"CA.json.gz", // far RET
*/
// relative JMP
@"EB.json.gz", @"E9.json.gz",
// far JMP
@"EA.josn.gz", @"FF.5.json.gz",
@"EB.json.gz", @"E9.json.gz", // relative JMP
@"EA.josn.gz", @"FF.5.json.gz", // far JMP
@"FF.4.json.gz", // absolute JMP
*/
@"E3.json.gz", // JCXZ
/*
// TODO: JCXZ
// INTO
@"CE.json.gz",