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

掌握目标语言的使用、编写 是非常重要的!!!

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

所以:汇编作为最普遍的目标代码,是早晚都需要学会的。

 


 

 


 

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

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

 

1. 一个求积函数

 

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

 

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

 

转载于:https://www.cnblogs.com/nanlan2017/p/9159533.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值