1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 08:49:37 +00:00

Implement MOV.

This commit is contained in:
Thomas Harte 2023-10-12 15:34:46 -04:00
parent da029ee344
commit 97d3a9fa78
2 changed files with 16 additions and 1 deletions

View File

@ -823,6 +823,11 @@ void lea(
destination = IntT(address<model, uint16_t>(instruction, instruction.source(), registers, memory));
}
template <typename IntT>
void mov(IntT &destination, IntT source) {
destination = source;
}
template <typename FlowControllerT>
void int_(uint8_t vector, FlowControllerT &flow_controller) {
flow_controller.interrupt(vector);
@ -1018,6 +1023,7 @@ template <
case Operation::LES: if constexpr (data_size == DataSize::Word) Primitive::ld<model, Source::ES>(instruction, destination(), memory, registers); return;
case Operation::LEA: Primitive::lea<model>(instruction, destination(), memory, registers); return;
case Operation::MOV: Primitive::mov(destination(), source()); return;
case Operation::JO: jcc(status.condition<Condition::Overflow>()); return;
case Operation::JNO: jcc(!status.condition<Condition::Overflow>()); return;

View File

@ -384,7 +384,16 @@ struct FailedExecution {
// TODO: LOOP, LOOPE, LOOPNE
// TODO: MOV
// MOV
@"88.json.gz", @"89.json.gz", @"8A.json.gz", @"8B.json.gz",
@"8C.json.gz", @"8E.json.gz",
@"A0.json.gz", @"A1.json.gz", @"A2.json.gz", @"A3.json.gz",
@"B0.json.gz", @"B1.json.gz", @"B2.json.gz", @"B3.json.gz",
@"B4.json.gz", @"B5.json.gz", @"B6.json.gz", @"B7.json.gz",
@"B8.json.gz", @"B9.json.gz", @"BA.json.gz", @"BB.json.gz",
@"BC.json.gz", @"BD.json.gz", @"BE.json.gz", @"BF.json.gz",
@"C6.json.gz", @"C7.json.gz",
/*
// AND
@"20.json.gz", @"21.json.gz", @"22.json.gz", @"23.json.gz", @"24.json.gz", @"25.json.gz",