Created
January 24, 2018 18:48
-
-
Save nphilou/b3ba4fd0efe54164bca3a4d487b5b12f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include "memory.h" | |
| State ldb(Machine *m, unsigned char dst, unsigned char src1, bool imm, short int src2) { | |
| short int a = m->regs[src1]; | |
| short int b = imm ? src2 : m->regs[src2]; | |
| m->regs[dst] = m->mem[a + b]; | |
| return EXEC_CONTINUE; | |
| } | |
| State ldw(Machine *m, unsigned char dst, unsigned char src1, bool imm, short int src2) { | |
| short int a = m->regs[src1]; | |
| short int b = imm ? src2 : m->regs[src2]; | |
| short int addr = a + b; | |
| m->regs[dst] = m->mem[addr] | (m->mem[addr + 1] << 8); | |
| return EXEC_CONTINUE; | |
| } | |
| State stb(Machine *m, unsigned char dst, unsigned char src1, bool imm, short int src2) { | |
| short int a = m->regs[src1]; | |
| short int b = imm ? src2 : m->regs[src2]; | |
| m->mem[a + b] = (unsigned char) m->regs[dst]; | |
| return EXEC_CONTINUE; | |
| } | |
| State stw(Machine *m, unsigned char dst, unsigned char src1, bool imm, short int src2) { | |
| short int a = m->regs[src1]; | |
| short int b = imm ? src2 : m->regs[src2]; | |
| short int addr = a + b; | |
| m->mem[addr] = (unsigned char) (m->regs[dst] & 0xFF); | |
| m->mem[addr + 1] = (unsigned char) ((m->regs[dst] >> 8) & 0xFF); | |
| return EXEC_CONTINUE; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment