Skip to content
/ JSVM Public

Javascript virtual machine is one instruction set machine to parse and execute an assembly like code.

License

Notifications You must be signed in to change notification settings

jawb/JSVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSVM

Javascript virtual machine is one instruction set machine to parse and execute an assembly like code. This machine is written to be used by students studying compilers and willing to test and debug generated byte code in a simple manner.

1. Instruction set

Instruction Argument Description
#String: - Define label
PUSH #Number Push a number to the stack (32bit)
POP - Pop from stack
DATA #String Define variable with name
STORE #String Put head in variable
LOAD #String Push variable's value to stack
ADD - Addition
SUB - Substruction
MULT - Multiplication
DIV - Division
MOD - Remainder
AND - And
OR - Or
XOR - Exclusive or
Not - Ones' complement
RAS #Number<32 Right arithmetic shift
RBS #Number<32 Right binary shift
LS #Number<32 Left shift
LT - Lower than
LE - Lower or equal to
JMP #Label Unconditional jump to label
BEQ #Label Branch to label if equal
BNE #Label Branch to label if not equal
PRINT - Print integers in stack as characters until \0
PRINTN - Print number head of stack
READ - Read string and push it to stack
READN - Read number (32bit) and push it to stack

2. Features

  • Drag and drop byte code file
  • Step by step execution
  • Full code execution
  • GUI: Stack, Symbol table and Program counter

3. Todo

  • Tests and fixes
  • Add more instructions
  • Add a framebuffer
  • Better strings support
  • Older browsers support

Enjoy !

About

Javascript virtual machine is one instruction set machine to parse and execute an assembly like code.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published