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

正文內(nèi)容

第八章代碼生成序81目標(biāo)機(jī)器82運(yùn)行存儲(chǔ)管理83基本塊(存儲(chǔ)版)

2024-12-03 14:11上一頁面

下一頁面
  

【正文】 個(gè)基本塊表,其中每一條三地址 語句僅在一個(gè)塊中。 begin prod:= 0。 21 2. Bi的出口語句是“ [if]goto L”語句,而 L是 Bj 的入口語句, Bi是 Bj的前驅(qū)結(jié)點(diǎn)。對(duì)每一個(gè)三地址 語句 i: x: =y op z, 依次執(zhí)行下述步驟: ( a) 把當(dāng)前符號(hào)表中變量 x的下次引用信息 和活躍信息附加到語句 i上; ( b) 把符號(hào)表中 x的下次引用信息和活躍信 息分別置為“無下次引用”和“非活躍”; 26 ( c) 把當(dāng)前符號(hào)表中變量 y和 z的下次引用信 息和活躍信息附加到語句 i上; ( d) 把符號(hào)表中 y和 z的下次引用信息均置 為 i, 活躍信息均置為 “ 活躍” 。 ADD c, Ri 其開銷為 2 ( 3)或者 MOV c, Rj ADD Rj, Ri 其開銷為 3 8. 5. 1寄存器描述器和地址描述器 代碼生成算法將使用寄存器描述器和地址 描述器來記錄寄存器的內(nèi)容和名字的地址。若 y的值同時(shí)在主 存中和一個(gè)寄存器中,那么 y ?取寄存器 更好。如果 L是一個(gè)寄存器,則更新這個(gè) 寄存器描述器以記錄該寄存器存有 x的值。 如果 R同時(shí)保存了幾個(gè) 變量的值,則對(duì)每個(gè)需要存儲(chǔ)的變量值 都應(yīng)生成一條 MOV指令。 36 ( 3) 如果( 2)失敗,若 x在該基本塊中有 一個(gè)下次引用,或者 op是一個(gè)需要寄 存器的算符,則找一個(gè)已被占用的寄存 器 R。為寄存器。 32 8. 5. 2 代碼生成算法 對(duì)每個(gè)形如 i: x:= y op z {下次引用信息 } 依次執(zhí)行下述步驟: 1. L: = getreg( i: x:=y op z) L常常是一個(gè)寄存器,也可能是一個(gè)存 儲(chǔ)單元,用來存放計(jì)算 y op z所得的結(jié)果。 29 作業(yè):寫出 for語句(參考 375頁題 的 for語句相同含義序列)的三地址 代碼,畫出其流圖。 25 1. 開始時(shí),把基本塊中各變量的符號(hào)表表項(xiàng) 中的下次引用信息域置為“無下次引用”, 活躍信息域置為“活躍”。 E的 構(gòu)成如下:基本塊 Bi和基本塊 Bj滿足如下條件之一,則從 Bi引一條有向邊到 Bj 。其基本塊是由該入口 語句到下一個(gè)入口語句(不包括此入口語 句)、或到一個(gè)轉(zhuǎn)移語句(包括此轉(zhuǎn)移語 句)、或到一個(gè)停語句 (包括此停語句)之 間的語句序列組成。 在一個(gè)基本塊中的一個(gè)名字,所 謂在程序中的某個(gè)給定點(diǎn)是 活躍 的,是指如 果在程序中(包括在本基本塊或在其它基本 塊中〕它的值在該點(diǎn)以后被引用。 從過程 callee的返回: GOTO *- area 11 8. 2. 2 棧式分配管理 第一個(gè)過程的代碼初始化棧: MOV stackstart, SP / *初始化棧*/ call p ADD # caller. recordsize, SP/ *將調(diào)用過程的活動(dòng)記錄的長度加入到 SP中 */ MOV # here+ 16, *SP/ *存儲(chǔ)返回地址 */ GOTO - area/ *轉(zhuǎn)移到被調(diào)用過程的代碼的第一條指令 */ 屬性 的大小。對(duì)絕大多數(shù)機(jī)器和絕大多數(shù)指令而言, 用來從存儲(chǔ)器中獲取一條指令的時(shí)間超過了執(zhí) 行該指令的時(shí)間。 符號(hào)表中的項(xiàng):名字,類型, 嵌套深度,偏移量 目標(biāo)代碼:絕對(duì)機(jī)器代碼,可再定位代碼,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1