讀《計算機系統要素:從零開始構建現代計算機》的思考:CodeGen

掌握目標語言的使用、編寫 是很是重要的!!!數組

若是你要實現的Jack語言編譯器是把Jack語言代碼編譯成虛擬機VM代碼、或者直接成彙編代碼,要完成源代碼中unit A——> 目標語言代碼轉寫此unit A  這個工做,缺乏對目標語言代碼的掌握是不行的。函數

因此:彙編做爲最廣泛的目標代碼,是遲早都須要學會的。spa

 


 

 


 

貼幾張書中截圖,展現一下在vm層面,是如何實現諸如求積函數、數組元素賦值、對象實例賦值這樣的高級語言代碼典型unit的對象

首先這是vm的函數執行內存模型、基本的pop/push指令blog

 

1. 一個求積函數內存

 

2. 數組元素賦值: int bar[10];  bar[2]=19;編譯器

 

3. 實例對象的成員變量賦值
虛擬機

相關文章
相關標籤/搜索