#include "./register.h" #include #include r16_int r0, r1, r2, r3, acu, pc, sp; void LogRegisters() { printf(" r0: 0x%X\n r1: 0x%X\n r2: 0x%X\n r3: 0x%X\nACU: 0x%X\n PC: 0x%X\n SP: 0x%X\n", r0.u, r1.u, r2.u, r3.u, acu.u, pc.u, sp.u); } r16_int *GetRegPoint(CpuRegisters reg) { switch (reg) { case R0: return &r0; case R1: return &r1; case R2: return &r2; case R3: return &r3; case ACU: return &acu; case PC: return &pc; case SP: return &sp; } return NULL; } r16_int GetRegister(CpuRegisters reg) { return *(GetRegPoint(reg)); } void SetRegister(CpuRegisters reg, r16_int value) { *(GetRegPoint(reg)) = value; }