freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

目標(biāo)代碼生成ppt課件-展示頁

2025-05-10 22:17本頁面
  

【正文】 第 7章 目標(biāo)代碼生成 一個簡單代碼生成器 * 匯編指令到機器代碼的翻譯概述 第 7章 目標(biāo)代碼生成 概述 目標(biāo)代碼生成: 目標(biāo)代碼生成就是將中間代碼程序轉(zhuǎn)換成等價的目標(biāo)代碼程序,完成這一功能的程序稱為目標(biāo)代碼生成器。 代碼生成器: – 目標(biāo)代碼的常見形式 (1)可立即執(zhí)行的機器語言代碼。 (.obj或 lib) (3)匯編語言程序 – 生成目標(biāo)代碼的過程中要注意考慮的問題: (1)生成的目標(biāo)代碼較短 (2)充分利用寄存器 第 7章 目標(biāo)代碼生成 一個簡單代碼生成器 簡單的代碼生成器 : 特點 : 生成器依次把每條中間代碼變換成目標(biāo)代碼, 在一個基本塊范圍內(nèi)考慮如何充分利用寄存器的問題 。 第 7章 目標(biāo)代碼生成 ? 低效的代碼生成器 :不考慮代碼的效率 , 可以簡單地把每條中間代碼 (四元式 )映射成若干條目標(biāo)指令 例如 , 一 C語言語句為 A=(B+C)*D+E, 把它翻譯為四元式 G: T1=B+C T2=T1*D A=T2+E 代碼生成器將形如 x=y+z的三地址代碼映射為: MOV AX, y /*AX為寄存器 */ ADD AX, z MOV x, AX 第 7章 目標(biāo)代碼生成 這樣 , 上述四元式代碼序列 G就可翻譯為: (1) MOV AX, B (2) ADD AX, C (3) MOV T1, AX (4) MOV AX, T1 (5) MUL AX, D (6) MOV T2, AX (7) MOV AX, T2 (8) ADD AX, E (9) MOV A, AX ?(4)和 (7)兩條指令是多余的; ?T T2是中間代碼生成時產(chǎn)生的臨時變量,它們在出了基本塊后將不再使用,故 (3)、 (6)兩條指令也可刪去。 ? 待用信息 :為了將基本塊內(nèi)還要被引用的值盡可能地保留在寄存器中 ,需要收集變量的待用信息 。 上例中如在 i之后 A被不再被引用 , 則稱 A為非活躍的 , 否則稱 A在i是活躍的; ? 如果 A被多處引用 , 則構(gòu)成了 A的待用信息鏈與活躍信息鏈 。 ? 基本塊中的臨時變量看作基本塊出口之后的非活躍變量 , 而所有的非臨時變量均看作基本塊出口之后的活躍變量 。 ? 假設(shè)變量的符號表內(nèi)有待用信息和活躍信息欄 , 則計算變量待用信息的算法如下: 第 7章 目標(biāo)代碼生成 (1) 將基本塊中各變量的符號表的 待用信息欄置為 “ 非待用 ” , 對 活躍信息欄 則根據(jù)該變量在基本塊出口之后是否活躍而將該欄中的信息置為 “ 活躍 ” 或 “ 非活躍 ” 。對每個四元式 i: A=B op C依次執(zhí)行以下步驟: ① 把符號表中變量 A的待用信息和活躍信息附加到四元式 i上; ② 把符號表中變量 A的待用信息和活躍信息分別置為“ 非待用 ” 和 “ 非活躍 ” ; ③ 把符號表中變量 B和 C的待用信息和活躍信息附加到四元式 i上; ④ 把符號表中 B和 C的待用信息置為 i, 活躍信息置為“ 活躍 ” 。 第 7章 目標(biāo)代碼生成 表 例 變量名 待 用 信 息 活 躍 信 息 初值 待 用 信 息 鏈 初值 活 躍 信 息 鏈 T F (3) F F L L F A F (2) (1) L L B F (1) L L C F
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1