Some changes
This commit is contained in:
17
cpu/core.h
17
cpu/core.h
@@ -22,6 +22,7 @@
|
||||
#define CPU_MODE_LOOP (1 << 3)
|
||||
#define CPU_MODE_STEP (1 << 4)
|
||||
#define CPU_MODE_SECOND (1 << 5)
|
||||
#define CPU_MODE_FRAME (1 << 6)
|
||||
|
||||
#define CPU_INSTRUCTION_SIZE 8 //Biggest instruction
|
||||
|
||||
@@ -56,7 +57,7 @@ typedef enum {
|
||||
|
||||
HLT,
|
||||
|
||||
MOV_RN_IMM, // MOV Rn, Imm - Move immediate to register (Rn = Imm)
|
||||
MOV_IMM_RN, // MOV Rn, Imm - Move immediate to register (Rn = Imm)
|
||||
MOV_RN_RM, // MOV Rn, Rm - Move value from one register to another (Rn = Rm)
|
||||
MOV_RN_ADDR, // MOV Rn, [Addr] - Load value from memory address into register (Rn = [Addr])
|
||||
MOV_ADDR_RN, // MOV [Addr], Rn - Store register value into memory address ([Addr] = Rn)
|
||||
@@ -114,11 +115,17 @@ typedef enum {
|
||||
JE, // JE Addr - Jump if equal (if zero flag set, PC = Addr)
|
||||
JNE, // JNE Addr - Jump if not equal (if zero flag not set, PC = Addr)
|
||||
|
||||
JMP_BIT_SET_RN, // jump relative if a given bit in a register is set
|
||||
JMP_BIT_SET_ADDR, // jump relative if a given bit in memory is set
|
||||
BIT_TS_RN, // jump relative if a given bit in a register is set
|
||||
BIT_TS_ADDR, // jump relative if a given bit in memory is set
|
||||
|
||||
JMP_BIT_CLEAR_RN, // jump relative if a given bit in a register is not set
|
||||
JMP_BIT_CLEAR_ADDR, // jump relative if a given bit in memory is not set
|
||||
BIT_TC_RN, // jump relative if a given bit in a register is not set
|
||||
BIT_TC_ADDR, // jump relative if a given bit in memory is not set
|
||||
|
||||
BITS_RN, // jump relative if a given bit in a register is set
|
||||
BITS_ADDR, // jump relative if a given bit in memory is set
|
||||
|
||||
BITC_RN, // jump relative if a given bit in a register is not set
|
||||
BITC_ADDR, // jump relative if a given bit in memory is not set
|
||||
|
||||
JG, // JG Addr - Jump if greater (if greater flag set, PC = Addr)
|
||||
|
||||
|
Reference in New Issue
Block a user