RVM is my custom RISC ISA for virtual machines. RvmASM is the language you write programs for them in. Here is an example:
>CFG bit-width #8
>CFG addr-width #16
@BLCK mmio $3000 {
@VAR serial_port $30
@VAR gpu_update_register $301555
@VAR PS2 $3F8
}
@BLCK data $5000 {
@VAR msg "Hello World"
}
@BLCK functions $6000 {
@FUNC print with @ARGS 1 {
reg:3 <- $0
while reg:2 != 0 {
reg:2 <- *(@ARG:0 + reg:3)
reg:2 -> mmio.serial_port
reg:3 <- reg:3 + $1
}
return
}
}
@BLCK start $4000 {
@CALL functions.print with &data.msg
}