diff options
Diffstat (limited to 'projects/hack-vm/vminit.py')
-rw-r--r-- | projects/hack-vm/vminit.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/projects/hack-vm/vminit.py b/projects/hack-vm/vminit.py new file mode 100644 index 0000000..73f79ce --- /dev/null +++ b/projects/hack-vm/vminit.py @@ -0,0 +1,46 @@ +from .utils import * + +VMINIT_ASM = """@256 +D=A +@SP +M=D +@{prog}$ret_init +D=A +@SP +A=M +M=D +@LCL +D=M +@SP +AM=M+1 +M=D +@ARG +D=M +@SP +AM=M+1 +M=D +@THIS +D=M +@SP +AM=M+1 +M=D +@THAT +D=M +@SP +AM=M+1 +M=D +@SP +MD=M+1 +@LCL +M=D +@5 +D=D-A +@ARG +M=D +@Sys.init +0;JMP +({prog}$ret_init) +""" + +def vminit(prog): + return VMINIT_ASM.format(prog=prog) |