Skip to content
0xC0ba1t edited this page Aug 11, 2023 · 9 revisions

CommaISA

Version: 0.0.3, 12|7|2023

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

Version: 0.0.2, 29|05|2023

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.

Version: 0.0.1, 12|05|2023

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
Clone this wiki locally