階段五、最佳化過程的示意圖 * i i t1 + sum t1 t2 = t2 sum * i i t1 + sum t1 sum 最佳化 階段六、程式碼產生過程的示意圖 * i i t1 + sum t1 sum LD R1, i LD R2, sum MUL R3, R1, R1 ADD R2, R3, R2 ST R2, sum 程式碼產生 Pcode 中間碼 CPU0 組合語言 程式剖析到 i=1 完成時的語法樹與堆疊結構 PROG BaseList BASE FOR for ( i: id = STMT 1:number PROG BaseList BASE FOR 成 長 方 向 堆疊 (Stack) EXP TERM FACTOR ITEM BASE STMT sum: id = 0:number EXP TERM FACTOR ITEM ; 副程式呼叫時的堆疊變化情況 框架指標FP 區域變數 x 區域變數 y 參數t (=x=1) FP SP 框架指標 FP 區域變數 x 區域變數 y 參數 t (=x=1) y=f1(x) 返回地址 保存的 FP 區域變數 b (b) 呼叫 y=f1(x) 後 註:在 CPU0 當中,返回值都是儲存在 R1返回 框架指標 FP 區域變數 x 區域變數 y 參數 t (=x=1) y=f1(x) 返回地址
原创力文档

文档评论(0)