diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-18 11:56:37 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-18 11:56:37 +0100 |
| commit | c2c33f2e930e7d2ae4b4439caf41130004690c18 (patch) | |
| tree | 4e03a1bc06f916d77909b55d48fbe2d05a9c80d1 | |
| parent | cb04f26e46f6a359eddec5194f26b447d83a24f3 (diff) | |
add more instructions to the 32k.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
| -rw-r--r-- | CompilerKit/AsmKit/Arch/32k.hpp | 21 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/CodeEditorController.java | 3 |
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; |
