读《计算机系统要素:从零开始构建现代计算机》的思考:CodeGen

掌握目标语言的使用、编写 是很是重要的!!!数组

若是你要实现的Jack语言编译器是把Jack语言代码编译成虚拟机VM代码、或者直接成汇编代码,要完成源代码中unit A——> 目标语言代码转写此unit A  这个工做,缺乏对目标语言代码的掌握是不行的。函数

因此:汇编做为最广泛的目标代码,是迟早都须要学会的。spa

 


 

 


 

贴几张书中截图,展现一下在vm层面,是如何实现诸如求积函数、数组元素赋值、对象实例赋值这样的高级语言代码典型unit的对象

首先这是vm的函数执行内存模型、基本的pop/push指令blog

 

1. 一个求积函数内存

 

2. 数组元素赋值: int bar[10];  bar[2]=19;编译器

 

3. 实例对象的成员变量赋值
虚拟机

相关文章
相关标签/搜索