-
Notifications
You must be signed in to change notification settings - Fork 0
ISA
0xC0ba1t edited this page Aug 11, 2023
·
9 revisions
Simplified Instruction Set Architecture:
Data Types:
- Byte: 8 bits
- Word: 32 bits
- Doubleword: 64 bits
- Floating-point: 32 bits
- Double-precision floating-point: 64 bits
Registers:
- 16 general-purpose registers (r0-r15)
- 1 program counter (PC)
- 1 stack pointer (SP)
- 1 frame pointer (FP)
- 1 condition code register (CCR)
Instruction Set:
- Load/Store Instructions:
- LD (Load): Load a value from memory to a register
- ST (Store): Store a value from a register to memory
- Arithmetic Instructions:
- ADD: Add two values
- SUB: Subtract two values
- MUL: Multiply two values
- DIV: Divide two values Logic Instructions:
- AND: Bitwise AND two values
- OR: Bitwise OR two values
- XOR: Bitwise XOR two values
- NOT: Bitwise NOT of a value
- Control Flow Instructions:
- JMP (Jump): Unconditional jump to a label
- JEQ (Jump if Equal): Jump to a label if two values are equal
- JNE (Jump if Not Equal): Jump to a label if two values are not equal
- CALL: Call a subroutine
- RET (Return): Return from a subroutine
- CMP (Compare): Compare two values and set the condition code register
- BNE (Branch if Not Equal): Branch to a label if the condition code register is not equal
- BEQ (Branch if Equal): Branch to a label if the condition code register is equal
- Expansion Instructions:
- NOP (No Operation): Do nothing
- HALT: Stop the CPU
- Video Processing Instructions:
- LDV (Load Video): Load a video frame from memory to a video processing register
- STV (Store Video): Store a video frame from a video processing register to memory
- DRAW: Draw a video frame from a video processing register to the screen
- SYNC: Synchronize the video processing unit with the CPU
More registers, audio processing, extended datatypes:
Data Types:
- Byte: 8 bits
- Halfword: 16 bits
- Word: 32 bits
- Doubleword: 64 bits
- Quadword: 128 bits
- Floating-point: 32 bits
- Double-precision floating-point: 64 bits
Registers:
- 32 general-purpose registers (z0-z31)
- 1 program counter (PC)
- 1 stack pointer (SP)
- 1 frame pointer (FP)
- 1 condition code register (CCR)
Instruction Set:
- Load/Store Instructions:
- LD (Load): Load a value from memory to a register
- ST (Store): Store a value from a register to memory
- Arithmetic Instructions:
- ADD: Add two values
- SUB: Subtract two values
- MUL: Multiply two values
- DIV: Divide two values
- REM: Remainder of division
- Logic Instructions:
- AND: Bitwise AND two values
- OR: Bitwise OR two values
- XOR: Bitwise XOR two values
- NOT: Bitwise NOT of a value
- Control Flow Instructions:
- JMP (Jump): Unconditional jump to a label
- JEQ (Jump if Equal): Jump to a label if two values are equal
- JNE (Jump if Not Equal): Jump to a label if two values are not equal
- JGT (Jump if Greater Than): Jump to a label if the first value is greater than the second value
- JLT (Jump if Less Than): Jump to a label if the first value is less than the second value
- CALL: Call a subroutine
- RET (Return): Return from a subroutine
- CMP (Compare): Compare two values and set the condition code register
- BNE (Branch if Not Equal): Branch to a label if the condition code register is not equal
- BEQ (Branch if Equal): Branch to a label if the condition code register is equal
- BGT (Branch if Greater Than): Branch to a label if the condition code register is greater than
- BLT (Branch if Less Than): Branch to a label if the condition code register is less than
- Video Processing Instructions:
- LOADVID (Load Video): Load a video frame from memory to a video processing hardware
- DRAW (Draw): Draw an image to the video processing hardware
- SYNC (Synchronize): Synchronize the video processing hardware with the CPU
- Audio Processing Instructions:
- LOADAUD (Load Audio): Load an audio sample from memory to an audio processing hardware
- PLAY (Play): Play an audio sample
- PAUSE (Pause): Pause playback of an audio sample
- STOP (Stop): Stop playback of an audio sample
- Expansion Instructions:
- NOP (No Operation): Do nothing
- HALT: Stop the CPU
This new ISA is more effective, efficient, and sophisticated than the previous one. It has a wider range of data types, more instructions, and better support for multimedia processing.
New and improved, overhauled ISA:
Data Types:
- Byte: 8 bits
- Halfword: 16 bits
- Word: 32 bits
Registers:
- 16 general-purpose registers (R0-R15)
- 1 program counter (PC)
- 1 stack pointer (SP)
Instruction Set:
Load/Store Instructions:
- LD (Load): Load a value from memory to a register
- ST (Store): Store a value from a register to memory
Arithmetic Instructions:
- ADD: Add two values
- SUB: Subtract two values
- MUL: Multiply two values
- DIV: Divide two values
Logic Instructions:
- AND: Bitwise AND two values
- OR: Bitwise OR two values
- XOR: Bitwise XOR two values
Control Flow Instructions:
- JMP (Jump): Unconditional jump to a label
- JEQ (Jump if Equal): Jump to a label if two values are equal
- JNE (Jump if Not Equal): Jump to a label if two values are not equal
- JGT (Jump if Greater Than): Jump to a label if the first value is greater than the second value
- JLT (Jump if Less Than): Jump to a label if the first value is less than the second value
- CALL: Call a subroutine
- RET (Return): Return from a subroutine
Input/Output Instructions:
- IN: Read a byte from an input port
- OUT: Write a byte to an output port
Video Processing Instructions:
- LOADVID (Load Video): Load a video frame from memory to a video processing hardware
- DRAW (Draw): Draw an image to the video processing hardware
- SYNC (Synchronize): Synchronize the video processing hardware with the CPU
Expansion Instructions:
- NOP (No Operation): Do nothing
- HALT: Stop the CPU