掌握目标语言的使用、编写 是很是重要的!!!数组
若是你要实现的Jack语言编译器是把Jack语言代码编译成虚拟机VM代码、或者直接成汇编代码,要完成源代码中unit A——> 目标语言代码转写此unit A 这个工做,缺乏对目标语言代码的掌握是不行的。函数
因此:汇编做为最广泛的目标代码,是迟早都须要学会的。spa
贴几张书中截图,展现一下在vm层面,是如何实现诸如求积函数、数组元素赋值、对象实例赋值这样的高级语言代码典型unit的。对象
首先这是vm的函数执行内存模型、基本的pop/push指令:blog
1. 一个求积函数内存
2. 数组元素赋值: int bar[10]; bar[2]=19;编译器
3. 实例对象的成员变量赋值:
虚拟机