GithubHelp home page GithubHelp logo

do-core1's Introduction

do-core1

The do-core1 is a simple 32-bit 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 32 registers, from R0 toR31.

It also uses one Program Counter (PC) register and a operation flags (RFLAGS) register.

All do-core1 registers are 32 bits wide.

Memory Model

do-core1 can address up to 4GiB (4 Giga Bytes) of physical memory.

Instruction Set

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

The do-core1 is a 2-operand architecture, i.e. its instruction takes at most 2 operands. The result of the instruction is always stored in the first operand.

do-core1 operands are register indexes i.e. the instruction operates on R[op]. For example, an operand set to 14 is addressing R14.

When using 2 operands, a do-core1 instruction can be split into an operation code (opcode), the first operand (op0) and the second operand (op1). The opcode is 6 bits long, and operands are 5 bits long:

do-core instruction with 2 operands:

Bits  |15              11|10                6|5               0|
      ----------------------------------------------------------
      | op1 (bits 11-15) | op0 (bits 6-10) | Opcode (bits 0-5) |
      ----------------------------------------------------------

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

Opcode Instruction Description
0x00 LDW Rn, Rm LoaD Word: Load the 32-bit value at the memory address contained in Rm into Rn
0x01 STW Rn, Rm STore Word: Store the 32-bit value from Rn into the memory address contained in Rm
0x02 ADD Rn, Rm ADD: Add the value contained in Rm into Rn (Rn = Rn + Rm)
0x03 XOR Rn, Rm eXclusive OR: Perform a bitwise exclusive OR between Rn and Rm (Rn = Rn ^ Rm)

do-core1's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.