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

正文內(nèi)容

第八章代碼生成(已修改)

2024-10-27 21:40 本頁面
 

【正文】 第八章 代 碼 生 成 本章內(nèi)容 ? 一個簡單的代碼生成算法 ? 涉及存儲管理,指令選擇,寄存器分配和計算次序選擇 等基本問題 前端 代 碼 優(yōu) 化 器 中間 代碼 源程序 代碼 生成 器 中間 代碼 目標(biāo) 程序 代碼生成器的設(shè)計中的問題 目標(biāo)程序 ? 可執(zhí)行目標(biāo)模塊 ? 可重定位目標(biāo)模塊 – 允許程序模塊分別編譯 – 調(diào)用其它先前編譯好的程序模塊 ? 匯編語言程序 – 免去編譯器重復(fù)匯編器的工作 – 從教學(xué)角度,增加可讀性 代碼生成器的設(shè)計中的問題 指令的選擇 目標(biāo)機(jī)器指令系統(tǒng)的性質(zhì)決定了指令選擇的難易程度,指令系統(tǒng)的統(tǒng)一性和完備性是重要的因素 指令的速度和機(jī)器特點是另一些重要的因素 代碼生成器的設(shè)計中的問題 若不考慮目標(biāo)程序的效率,指令的選擇是直截了當(dāng)?shù)摹? 三地址語句 x := y + z( x, y和 z都是靜態(tài)分配) MOV y, R0 /* 把 y裝入寄存器 R0 */ ADD z, R0 /* z加到 R0上 */ MOV R0, x /* 把 R0存入 x中 */ 逐個語句地產(chǎn)生代碼,常常得到低質(zhì)量的代碼 代碼生成器的設(shè)計中的問題 語句序列 a := b + c d := a + e 的代碼如下 MOV b, R0 ADD c, R0 MOV R0, a MOV a, R0 ADD e, R0 MOV R0, d 代碼生成器的設(shè)計中的問題 語句序列 a := b + c d := a + e 的代碼如下 MOV b, R0 ADD c, R0 MOV R0, a MOV a, R0 多余的指令 ADD e, R0 MOV R0, d 代碼生成器的設(shè)計中的問題 語句序列 a := b + c d := a + e 的代碼如下 MOV b, R0 ADD c, R0 MOV R0, a MOV a, R0 多余的指令 ADD e, R0 若 a不再使用,第三條也 MOV R0, d 多余 代碼生成器的設(shè)計中的問題 寄存器分配 運(yùn)算對象處于寄存器中的指令通常比運(yùn)算對象處于內(nèi)存的指令要短一些,執(zhí)行也快一些 ? 寄存器分配 選擇駐留在寄存器中的一組變量 ? 寄存器指派 挑選變量要駐留的具體寄存器 代碼生成器的設(shè)計中的問題 計算次序的選擇 某種計算次序可能會比其它次序需要較少的寄存器來保存中間結(jié)果 目 標(biāo) 機(jī) 器 目標(biāo)機(jī)器的指令系統(tǒng) 選擇可作為幾種微機(jī)代表的寄存器機(jī)器 四字節(jié)組成一個字,有 n個通用寄存器 R0,R1, … ,Rn1。 二地址指令 op 源,目的 MOV {源傳到目的 } ADD {源加到目的 } SUB {目的減去源 } 目 標(biāo) 機(jī) 器 地址模式和它們的匯編語言形式及附加代價 模式 形式 地址 附加代價 絕對地址 M M 1 寄存器 R R 0 變址 c(R) c + contents(R) 1 間接寄存器 *R contents(R) 0 間接變址 *c(R) contents(c + contents(R)) 1 直接量 c c 1 目 標(biāo) 機(jī) 器 指令實例 MOV R0, M MOV 4(R0), M contents(4 + contents(R0)) MOV *4(R0), M contents(contents (4 + contents(R0) ) ) MOV 1, R0 目 標(biāo) 機(jī) 器 指令的代價
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1