读《计算机系统要素:从零开始构建现代计算机》的思考:CodeGen
2024-09-01 12:47:21
掌握目标语言的使用、编写 是非常重要的!!!
如果你要实现的Jack语言编译器是把Jack语言代码编译成虚拟机VM代码、或者直接成汇编代码,要完成源代码中unit A——> 目标语言代码转写此unit A 这个工作,缺少对目标语言代码的掌握是不行的。
所以:汇编作为最普遍的目标代码,是早晚都需要学会的。
贴几张书中截图,展示一下在vm层面,是如何实现诸如求积函数、数组元素赋值、对象实例赋值这样的高级语言代码典型unit的。
首先这是vm的函数执行内存模型、基本的pop/push指令:
1. 一个求积函数
2. 数组元素赋值: int bar[10]; bar[2]=19;
3. 实例对象的成员变量赋值:
最新文章
- [后端人员耍前端系列]KnockoutJs篇:使用WebApi+Bootstrap+KnockoutJs打造单页面程序
- 《机器学习实战》学习笔记——第14章 利用SVD简化数据
- [BTS] Faulting application name: BTSNTSvc.exe, version: 3.9.469.0, time stamp: 0x4c547e09
- Andriod调用http请求
- 用gameMaker做个小游戏
- poj 1459 Power Network
- Java中的自动拆箱装箱(Autoboxing&;Unboxing)
- To the end
- WebGL 创建和初始化着色器过程
- 《深入实践Spring Boot》阅读笔记之二:分布式应用开发
- 从Perforce到Git的迁移
- python format() 函数
- Luogu P2312 解方程
- ZOJ 4027 Sequence Swapping(DP)题解
- Fluent UDF【3】:环境配置
- Oralce分析函数
- 20145230熊佳炜《网络对抗》实验五:MSF基础应用
- 「BZOJ 3218」 a + b Problem
- 构建vue零散笔记
- 利用位操作进行IP地址的转化