No description
Find a file
2026-08-11 11:17:48 +00:00
src Fix JMIZ, JMNZ, BRIZ, and BRNZ instructions landing one instruction too late 2026-08-11 09:20:50 +00:00
.gitignore Implement file creation from BinaryBlock 2026-08-07 09:13:26 +00:00
ARCH.md Stuff 2026-08-05 21:55:23 +02:00
Cargo.lock Stuff 2026-08-05 21:55:23 +02:00
Cargo.toml Stuff 2026-08-05 21:55:23 +02:00
main.kiss Parsing stuff 2026-08-06 10:37:10 +00:00
main.rvm Fix sample program main.rvm 2026-08-11 11:17:48 +00:00
README.md Stuff 2026-08-05 21:55:23 +02:00
RVM.md Fix JMIZ, JMNZ, BRIZ, and BRNZ instructions landing one instruction too late 2026-08-11 09:20:50 +00:00

KISSasm

(pronounced "Kizzasm" | ˌkɪzˈæzəm)

Keep It Stupid, Simple assembly

Introduction

KISSasm is a high-level language specifically for enabling easy writing of programs for my custom architecture, RVM-32. For detailed information on the architecture itself, please refer to ARCH.md. The smallest program is literally this:

@BLCK start $4000 {
  !HALT
}

This creates a data block mapped to address 0x4000, containing just one instruction: HALT.

As you can probably tell, this language does logic and memory mapping all at once. No linker script needed, because the information is already clearly readable in your code.

The best thing: Blocks are namespaced and globally accessible:

@BLCK data $2000 {
  @VAR age = #18
}

@BLCK start $4000 {
  reg:0 <- data.age   // Loads age from block "data" by value
  !HALT
}