Skip to content

croumegous/do-core1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

do-core1

The do-core1 is a simple processor architecture, mostly for educational purposes.

It aims at being a support for system programming and computer architecture fundamentals courses.

Instruction Set Architecture

The do-core1 Instruction Set Architecture (ISA) is a simple Reduced Instruction Set Computer (RISC) processor architecture, with a very limited memory model and instruction and register set.

Registers

do-core1 exposes 8 general purpose registers: R0, R1, R2, R3, R4, R5, R6, R7.

It also uses one Instruction Pointer (RIP) register and a operation flags (RFLAGS) register.

All do-core1 registers are 16 bits wide.

Memory Model

do-core1 can address up to 4KiB (4096 bytes) of physical memory.

Instruction Set

do-core1 is a RISC architecture and executes fixed-length instructions of 16 bits.

The do-core1 is a 2-operand architecture, i.e. its instruction takes at most 2 operands. do-core1 operands are register indexes.

A do-core1 instruction can be split into an operation code (opcode), the first operand (op0) and the second operand (op1). The opcode is 8 bits long, and both operands are 4 bits long:

do-core instruction (16 bits)

Bits  |15                   8|7                4|3               0|
      -------------------------------------------------------------
      |  Opcode (bits 15-8)  |  op0 (bits 7-4)  | op1 (bits 3-0)  |
      -------------------------------------------------------------

The do-core1 is a load-store architecture and supports the following instructions:

Opcode Instruction Description
0x00 LD Rn, Rm Load the value at the memory address contained in Rm into Rn
0x01 ST Rn, Rm Store the value from Rn into the memory address contained in Rm
0x02 ADD Rn, Rm Add the value contained in Rm into Rn (Rn = Rn + Rm)
0x03 XOR Rn, Rm Perform a bitwise exclusive OR between Rn and Rm(Rn = Rn ^ Rm)

About

DO processor

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%