summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-18 11:56:37 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-18 11:56:37 +0100
commitc2c33f2e930e7d2ae4b4439caf41130004690c18 (patch)
tree4e03a1bc06f916d77909b55d48fbe2d05a9c80d1
parentcb04f26e46f6a359eddec5194f26b447d83a24f3 (diff)
add more instructions to the 32k.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
-rw-r--r--CompilerKit/AsmKit/Arch/32k.hpp21
-rw-r--r--IDE/src/main/java/org/elmahrouss/CodeEditorController.java3
2 files changed, 15 insertions, 9 deletions
diff --git a/CompilerKit/AsmKit/Arch/32k.hpp b/CompilerKit/AsmKit/Arch/32k.hpp
index 700da3b..291abfe 100644
--- a/CompilerKit/AsmKit/Arch/32k.hpp
+++ b/CompilerKit/AsmKit/Arch/32k.hpp
@@ -38,17 +38,20 @@ struct CpuCode32x0
char fFunct7;
};
-#define kAsmWordStr ".word"
-#define kAsmHWordStr ".half"
-#define kAsmByteStr ".bbyte"
+#define kAsmDWordStr ".dword" /* 64 bit */
+#define kAsmWordStr ".word" /* 32-bit */
+#define kAsmHWordStr ".half" /* 16-bit */
+#define kAsmByteStr ".byte" /* 8-bit */
inline std::vector<CpuCode32x0> kOpcodes32x0 = {
- kAsmOpcodeDecl("nop", 0b0100011, 0b0000000, kAsmNoArgs) // nothing to do.
- kAsmOpcodeDecl("jmp", 0b1110011, 0b0000011, kAsmJump) // jump to branch
- kAsmOpcodeDecl("move", 0b0100011, 0b101, kAsmImmediate)
- kAsmOpcodeDecl("push", 0b0111011, 0b0, kAsmImmediate) // push to sp
- kAsmOpcodeDecl("pop", 0b0111011, 0b1, kAsmImmediate) // pop from sp.
- kAsmOpcodeDecl("int", 0b0111111, 0b0, kAsmSyscall) // raise interrupt
+ kAsmOpcodeDecl("nop", 0b0100011, 0b000, kAsmNoArgs) // nothing to do.
+ kAsmOpcodeDecl("jmp", 0b1110011, 0b001, kAsmJump) // jump to branch
+ kAsmOpcodeDecl("move", 0b0100011, 0b101, kAsmImmediate) // move registers
+ kAsmOpcodeDecl("push", 0b0111011, 0b000, kAsmImmediate) // push to sp
+ kAsmOpcodeDecl("pop", 0b0111011, 0b001, kAsmImmediate) // pop from sp.
+ kAsmOpcodeDecl("cls", 0b0111011, 0b010, kAsmImmediate) // setup stack and call, store address to CR.
+ kAsmOpcodeDecl("rts", 0b0111011, 0b110, kAsmImmediate) // pull stack and return form CR.
+ kAsmOpcodeDecl("int", 0b0111111, 0b000, kAsmSyscall) // raise interrupt
};
// \brief 64x0 register prefix
diff --git a/IDE/src/main/java/org/elmahrouss/CodeEditorController.java b/IDE/src/main/java/org/elmahrouss/CodeEditorController.java
index 1843e12..ae1027d 100644
--- a/IDE/src/main/java/org/elmahrouss/CodeEditorController.java
+++ b/IDE/src/main/java/org/elmahrouss/CodeEditorController.java
@@ -11,6 +11,9 @@ package org.elmahrouss;
import javafx.scene.layout.Pane;
+/**
+ * Code Editor Controller (part of MVC arch)
+ */
public class CodeEditorController
{
private CodeEditorView vEditorView = null;