Skip to content

Assembly language compiler and interpreter for learning

Notifications You must be signed in to change notification settings

vhgn/underscore-asm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

underscore-asm

This is a compiler and interpreted runtime for Assembly language.

The main purpose was to build a simple language for people who want to learn fundamentals of computer science.

References

halt - stops the execution of the program (no arguments)

move - moves data to register/dereferenced register from register/literal/dereferenced register

add - adds to register from register/literal mul - multiplies to register from register/literal (integers) div - divides register in place to register/literal (integers) neg - negates the value of a register in place mod - puts the modulo register value/literal of a register in place

not - applies bitwise NOT to register and - applies bitwise AND to register and register/literal or - applies bitwise OR to register and register/literal xor - applies bitwise XOR to register and register/literal

cmp - compares register content with a literal to be used in a jump

jumplt - jump to label if compare result is less than jumple - jump to label if compare result is less than equal jumpeq - jump to label if compare result is equal jumpne - jump to label if compare result is not equal jumpgt - jump to label if compare result is greater than jumpge - jump to label if compare result is greater than equal

push - push a register or a literal to a stack pop - pop the stack into a register

call - call a procedure ret - return from a procedure

! - define a label @ - use a label > - defined a procedure < - use a procedure

Examples

Coming soon

About

Assembly language compiler and interpreter for learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published