Ducky ISA

Ducky ISA

  • Development
  • Running
  • Downloads
  • Contribute
  • Documentation

›DuckyISA Specification

Getting Started

  • Introduction
  • Downloads
  • Contribute

Tools

  • Toolchain
  • libducky

Implementations

  • QEMU
  • "Mallard" Board

Apps

  • Examples
  • Ducky FORTH
  • MicroPython

DuckyISA Specification

  • Terms
  • Registers
  • Memory model
  • Exception Vector Table
  • Instruction Set

Memory model

DuckyISA is a load-store architecture, where only dedicated instructions transfer data between memory and registers, and remaining instructions operate on CPU registers.

DuckyISA provides a 32-bit address space, addressing memory as 8-bit bytes, little-endian.

Virtual memory - via paging - support and specifications are still under development. Some necessary features (e.g. control registers) are already present while MMU or page table format specification are still not finished.

Load (l*) and store (st*) instructions transfer a value between the registers and memory, using another register and an optional immediate offset to address the memory. Addresses must be naturally aligned for each data type, misaligned access is not supported.

← RegistersException Vector Table →
Ducky ISA
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHub
Facebook Open Source
Copyright © 2019 Milos Prchlik <happz@happz.cz>