vc4
virtual computer 4 (see vc3 and vc2)
a computer-emulator with custom architecture, and some stuff to write and run software on it.
goals
- assemble program on host
- run program from host
- run program from emulated disk
- output to monitor device
- input from keyboard device
- command shell
- read/write files on emulated disk
- host/vm file share
- run programs from emulated disk
- edit text files
- assemble program on vm
isa
- 16-bit instruction set
- big endian
registers
r0 accumulator / return value
r1
r2
r3
r4
r5
r6
sp stack pointer
bp base pointer
instructions
r = register
i16 = 16-bit immediate
m = memory [r/i16]
nop
hlt
jmp r/i16
jnz r/i16
cmp r/i16
mov r/i16/m r
mov r r/i16/m
movb m r
movb r m
in r/i16
out r/i16 r/i16
call r/i16
ret
lit r/i16
int i8
or r r/i16
xor r r/i16
and r r/i16
shl r r/i16
rshl r r/i16
shr r r/i16
rshr r r/i16
add r r/i16
sub r r/i16
rsub r r/i16
mul r r/i16
imul r r/i16
div r r/i16
idiv r r/i16
mod r r/i16
rmod r r/i16
Description
Languages
C
97%
Makefile
3%