1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-02-16 18:30:32 +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::JMPrel: jcc(true); return;
case Operation::JMPabs: Primitive::jump_absolute(destination(), flow_controller); 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::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::IRET: Primitive::iret(registers, flow_controller, memory, status); return;
case Operation::RETnear: Primitive::ret_near(instruction, registers, flow_controller, memory); 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 @"C3.json.gz", @"C2.json.gz", // near RET
@"CB.json.gz", @"CA.json.gz", // far RET @"CB.json.gz", @"CA.json.gz", // far RET
*/
// relative JMP
@"EB.json.gz", @"E9.json.gz",
// far JMP @"EB.json.gz", @"E9.json.gz", // relative JMP
@"EA.josn.gz", @"FF.5.json.gz", @"EA.josn.gz", @"FF.5.json.gz", // far JMP
@"FF.4.json.gz", // absolute JMP @"FF.4.json.gz", // absolute JMP
*/
@"E3.json.gz", // JCXZ
/* /*
// TODO: JCXZ
// INTO // INTO
@"CE.json.gz", @"CE.json.gz",