Skip to content
Screen edited this page Jun 14, 2026 · 14 revisions

Easy

Easy is a super stripped-down processor architecture. It’s loosely based on RISC, but simplified even further, basically giving you a small set of core instructions and expecting you to build more complex stuff on top of them.

How do you use it?

Right now there’s no real CPU that runs Easy natively, so you run it through emulation on your current machine.
Using the Easy64 emulator, you can basically port Easy anywhere as a VM that reads bytecode.

Easy Assembly Guide

Easy Assembly is pretty minimal. The instruction set looks like this:
mov, add, sub, mul, div, and, or, xor, nop, not, shl, shr, jmp, je, jne, jl, jg, cmp, call, ret, push, pop, hlt, inc, dec, load, store, entry.

The Easy64 emulator adds a couple extra instructions to make emulation practical:
import, syscall, print.

These are all classic assembly instructions. Nothing fancy,just enough primitives to let you build more complex behavior yourself.

Assembler features

The Easy assembler is intentionally simple and kinda restrictive but not in a bad way. It’s more about enforcing structure than limiting what you can do.

For example:
If you’re using load/store with a bss-type data structure, r10 acts as your pointer.

Also, all instructions are reversed compared to typical CISC-style assembly. For example:
mov value, register
basically means:
move the value into the register

Easy Assembly register count

It’s 20 in the default/classic setup, but you’re free to tweak the code and add more if you need them.

The VM is open-source, so you can extend it however you want. But if you’re thinking about actually building a CPU for it, the “official” / base design sticks to those 20 registers.

How can I fully learn Easy Assembly?

Check out the examples folder in the GitHub repo, go through the code and see how things are done. Since there’s basically no hard limit on what you can build, we started with simple stuff to explore and test features.

That said, you can just jump in and start writing your own code too, that’s honestly one of the best ways to get the hang of it.

How powerful is the assembler?

The assembler isn’t as advanced as a C or Rust compiler, and its error messages are pretty basic. You’ll usually just get the line that caused the issue and a simple explanation of what went wrong.

We don’t recommend modifying the assembler, it already works well enough as is.

How powerful is the interpreter (emulator)?

The emulator is mainly a testing tool, built just to check whether things run correctly. If you want, you can write your own version, it’s actually much less complex than the assembler.

What does the output (binary code) look like?

The assembler doesn’t really follow the order you write your code in. It reorganizes everything based on its own internal structure.

The Easy assembler outputs things in this order:
easyfile

Clone this wiki locally