版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十章目標(biāo)代碼生成目標(biāo)代碼(單寄存器)臨時(shí)變量的存儲(chǔ)空間分配寄存器的分配和釋放目標(biāo)代碼
虛擬目標(biāo)代碼:虛擬機(jī)上的目標(biāo)程序。在本地機(jī)器上具備虛擬機(jī)的解釋器。
實(shí)際目標(biāo)代碼:實(shí)際機(jī)器上的指令序列絕對(duì)地址機(jī)器代碼:可重定位的機(jī)器代碼:匯編代碼:三種硬件地址模式指令格式:Op#CR(立即-----寄存器)Opd(R1)R2(存儲(chǔ)器-----寄存器)OpR1R2(寄存器-----寄存器)幾個(gè)常見(jiàn)指令的含義:
LoadSourceR從Source讀出送入ROpSourceRSourceopR結(jié)果送入RStoreTargetRR的內(nèi)容送入Target.目標(biāo)代碼的生成(單寄存器)
形如(Op,A,B,T):LoadAR;OpBR
形如(ASSIG,A,B):LoadAR;StoreRB
例:Z:=X*(a+b)*Y*(a+b)
(+,a,b,t1)LoadaR;AddbR(*,X,t1,t2)StoreRt1;MultXR(*,t2,Y,t3)MultYR(*,t3,t1,t4)Multt1R例:Z:=X*(a+b)*Y*(a+b)
(+,a,b,t1)MOVAL,A;ADDAL,B;MOVAL,CL(*,X,t1,t2)MOVBL,X;MULBL(*,t2,Y,t3)MOVBX,Y;MULBX(*,t3,t1,t4)XORCH,CH;MULCX標(biāo)號(hào)和Jump的代碼
標(biāo)號(hào)到代碼地址的對(duì)應(yīng)表(flag,L,Addr)
形如(LabelL):
當(dāng)對(duì)應(yīng)表中沒(méi)有L項(xiàng)時(shí):填寫(xiě)表項(xiàng)(1,L,Pc),Pc表示下一條目標(biāo)代碼的地址。
當(dāng)有L項(xiàng)(0,L,P’)時(shí):從P’順著鏈回填地址Pc形如(JumpL):
對(duì)應(yīng)表中沒(méi)有L項(xiàng)時(shí)構(gòu)造鏈頭P:(Jump,nil): 填寫(xiě)表項(xiàng)(0,L,P);
當(dāng)有表項(xiàng)(0,L,P’)時(shí):拉鏈P:(JumpP’),修改表項(xiàng)為(0,L,P);
當(dāng)有表項(xiàng)(1,L,P)時(shí):取出L的地址P生成代碼。過(guò)程/函數(shù)調(diào)用的代碼
主要工作:
過(guò)函調(diào)用時(shí):申請(qǐng)新AR空間參數(shù)傳遞轉(zhuǎn)向過(guò)程體
過(guò)函入口:填寫(xiě)AR的相關(guān)內(nèi)容。
過(guò)函返回時(shí):釋放AR區(qū)恢復(fù)信息返回值
參數(shù)傳遞的代碼:
值參:
(VALACT,a,off,1):Loada(sp)RStoreoff(top)R(VALACT,A,off,1):Load@A(sp)RStoreoff(top)R變參:(VARACT,a,off,1):LoadAa(sp)RStoreoff(top)R
(VARACT,A,off,1):LoadA(sp)RStoreoff(top)R過(guò)函形參:(PROCACT,p,off,1):LoadEnter(p)RStoreoff(top)R(PROCACT,P,off,1):LoadP(sp)RStoreoff(top)R過(guò)函調(diào)用Call:傳參;(Call,g,True):JumpEnter(g)(Call,G,False):Jump@G(sp)入口(Entry,Label,size,Level):
填寫(xiě)AR信息;LoadtopspADDtopsize
出口(ENDPROC,---):
恢復(fù)調(diào)用前的信息和寄存器內(nèi)容;保存返回值;Loadsptop;LoadDyL(sp)sp;JumpRe_A(top)臨時(shí)變量
特點(diǎn):壽命短;一次定義一次使用
存儲(chǔ)空間:盡可能采用共享辦法
隨用隨分配的動(dòng)態(tài)分配:
調(diào)用一個(gè)過(guò)程時(shí),分配一個(gè)新的AR空間(不包括臨時(shí)變量部分),每當(dāng)要保存一個(gè)臨時(shí)變量時(shí),動(dòng)態(tài)分配到棧區(qū)的可用單元中
按共享法靜態(tài)分配:
先計(jì)算出臨時(shí)變量的空間,在過(guò)程調(diào)用時(shí)和源變量一起申請(qǐng)空間。即調(diào)用時(shí)將臨時(shí)變量安排在AR中。臨時(shí)變量的靜態(tài)分配
定值點(diǎn):如果i中間代碼給臨時(shí)變量T定值,則稱(chēng)i為臨時(shí)變量T的定值點(diǎn)。
引用點(diǎn):如果j中間代碼使用T,則稱(chēng)j為T(mén)的引用點(diǎn)。
活動(dòng)區(qū)間:如果i是T的定值點(diǎn),j是T的最后引用點(diǎn),則稱(chēng)[i,j]是T的活動(dòng)區(qū)間。
活動(dòng)區(qū)間[i,j]和[m,n]不嚴(yán)格相交:如果mj或in。
空間分配:如果兩個(gè)臨時(shí)變量的活動(dòng)區(qū)間不嚴(yán)格相交,則可以共享單元T1T2T3T4T5Offset=m
Offset=m+1
Offset=m+1
Offset=m+1
Offset=m例:寄存器
寄存器的分類(lèi):
可分配寄存器保留寄存器
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理崗位晉級(jí)與職業(yè)規(guī)劃
- (新教材)2026年滬科版七年級(jí)上冊(cè)數(shù)學(xué) 4.4 角 課件
- 中年心臟護(hù)理:如何保持健康的體重
- 巨脾患者的舒適護(hù)理與提升生活質(zhì)量
- 2025年辦公室家具租賃合同協(xié)議
- 解讀中華人民共和國(guó)《黃河保護(hù)法》修訂專(zhuān)題
- 運(yùn)用HFMEA管理構(gòu)建醫(yī)護(hù)一體化模式降低老年手術(shù)患者術(shù)中低體溫發(fā)生率
- 2025年工業(yè)數(shù)字服務(wù)平臺(tái)推廣方案
- 在線預(yù)訂平臺(tái)發(fā)展研究
- 2026 年中職康復(fù)工程技術(shù)(康復(fù)設(shè)備制作)試題及答案
- 2025年廣東省第一次普通高中學(xué)業(yè)水平合格性考試(春季高考)英語(yǔ)試題(含答案詳解)
- 2026年合同全生命周期管理培訓(xùn)課件與風(fēng)險(xiǎn)防控手冊(cè)
- 特殊兒童溝通技巧培訓(xùn)
- 理賠管理經(jīng)驗(yàn)分享
- 中國(guó)馬克思主義與當(dāng)代2024版教材課后思考題答案
- 2026年日歷表(每月一頁(yè)、可編輯、可備注)
- DB44∕T 1297-2025 聚乙烯單位產(chǎn)品能源消耗限額
- 2025年歷城語(yǔ)文面試題目及答案
- 援疆工作調(diào)研報(bào)告
- 機(jī)車(chē)-受電弓碳滑板磨耗檢測(cè)
- 數(shù)學(xué)建模電子教材
評(píng)論
0/150
提交評(píng)論