版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、8.4 簡單的棧式存儲分配簡單的棧式存儲分配 C語言語言過程的數(shù)據(jù)區(qū)過程的數(shù)據(jù)區(qū)數(shù)數(shù) 組組 區(qū)區(qū)活動記錄活動記錄 8.4.1 8.4.1 語言特性:語言特性: 過程允許遞歸調(diào)用過程允許遞歸調(diào)用;8.4.2 8.4.2 存儲區(qū)結(jié)構(gòu):存儲區(qū)結(jié)構(gòu): 例:例:全局?jǐn)?shù)據(jù)說明全局?jǐn)?shù)據(jù)說明Main()Main() main main中數(shù)據(jù)說明中數(shù)據(jù)說明 R R; Void R()Void R() R R中數(shù)據(jù)說明中數(shù)據(jù)說明 Q Q; Void Q()Void Q() Q Q中數(shù)據(jù)說明中數(shù)據(jù)說明 R R L L處處 過程調(diào)用順序:過程調(diào)用順序:mainRmainR1 1QRQR2 2存儲空間:存儲空間:TOP
2、 R2數(shù)組區(qū)數(shù)組區(qū)SP 活動記錄活動記錄Q數(shù)組區(qū)數(shù)組區(qū)活動記錄活動記錄R1數(shù)組區(qū)數(shù)組區(qū)活動記錄活動記錄main數(shù)組區(qū)數(shù)組區(qū)活動記錄活動記錄全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū)SPSP:現(xiàn)行過程活動記錄的起點(diǎn);:現(xiàn)行過程活動記錄的起點(diǎn);TOPTOP:已占用存儲空間的棧頂單元;:已占用存儲空間的棧頂單元;8.4.3 C 的活動記錄的活動記錄TOPTOP臨時單元臨時單元內(nèi)情向量內(nèi)情向量局部變量局部變量形式單元形式單元參數(shù)個數(shù)參數(shù)個數(shù)返回地址返回地址SPSP老老SPSP 動態(tài)鏈動態(tài)鏈連接數(shù)據(jù)連接數(shù)據(jù)參數(shù)參數(shù)TOPTOP臨時單元臨時單元內(nèi)情向量內(nèi)情向量局部變量局部變量形式單元形式單元參數(shù)個數(shù)參數(shù)個數(shù)返回地址返回地址SP
3、SP老老SPSPInt xMain() x=10; R; Void R(int c) int b,M3; b=5; Mc=x+2; if Mc5 Q; Void Q( ) R(1) ; 臨時變量臨時變量T1第第1維維長維維長d1M維數(shù):維數(shù):1M起始地址起始地址a局部變量:局部變量:b形參形參 :c參數(shù)個數(shù):參數(shù)個數(shù):1 1返回地址返回地址老老SPSP過程過程R R的的活動記錄活動記錄L=9L=98.4.4 8.4.4 主要處理工作主要處理工作1. C1. C語言過程調(diào)用語言過程調(diào)用 過程調(diào)用過程調(diào)用中間代碼:中間代碼:par T1 par TnCall P, n (n為參數(shù)個數(shù)為參數(shù)個數(shù))+
4、4+4形式單元形式單元+3+3參數(shù)個數(shù)參數(shù)個數(shù)+2+2返回地址返回地址+1+1老老SPSPTOPQSPR1main全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū)對:對:Par Par Ti ( i i=1=1n ),n ),目標(biāo)代碼:目標(biāo)代碼: 傳地址:傳地址:(i+3)TOP:=Addr(i+3)TOP:=AddrTi 或或傳值:傳值:(i+3)TOP:=(i+3)TOP:=Ti對:對:Call P, nCall P, n 目標(biāo)代碼:目標(biāo)代碼: * * 1 1TOP:=SP (TOP:=SP (保護(hù)工作環(huán)境保護(hù)工作環(huán)境) ) * * 參數(shù)個數(shù):參數(shù)個數(shù):3TOP:= n3TOP:= n * * 轉(zhuǎn)子:轉(zhuǎn)子: JSR
5、PJSR PInt xMain() x=10; R; Void R(int c) int b,M3; b=5; Mc=x+2; if Mc5 Q; Void Q( ) R(1) L處處 調(diào)用順序調(diào)用順序 MainMain R R1 1 Q Q R R2 2調(diào)用過程調(diào)用過程R R的中間代碼:的中間代碼: par 1par 1 call R , 1 call R , 1 Int xMain() x=10; R; Void R(int c) int b,M3; b=5; Mc=x+2; if Mc5 Q; Void Q( ) R(1) L處處 104形參形參 c1103參數(shù)個數(shù)參數(shù)個數(shù)1102101
6、老老SPSP50 100TOPQ99SP 50R1mainX 10X 10 全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū)調(diào)用順序調(diào)用順序過程調(diào)用過程調(diào)用中間代碼:中間代碼: par 1par 1 call R , 1 call R , 1 對:對:Par Par Ti ( i i=1=1n )n )(i+3)TOP:=Addr(i+3)TOP:=AddrTi(或或Ti)Ti)對:對:Call P, nCall P, n* * 1 1TOP:=SPTOP:=SP* * 3TOP:=n ( 3TOP:=n (參數(shù)個數(shù)參數(shù)個數(shù)) )* * JSR P ( JSR P (轉(zhuǎn)子轉(zhuǎn)子) )MainMain R R1 1Q Q R
7、 R2 22.2.過程進(jìn)入過程進(jìn)入 過程定義的中間代碼:過程定義的中間代碼: proc 過程名過程名 過程體過程體 return (m) endproc過程進(jìn)入過程進(jìn)入新新TOP形式單元形式單元參數(shù)個數(shù)參數(shù)個數(shù)+1+1返回地址返回地址新新SP老老SP(QSP(Q的的SP)SP)TOPQSPR1main全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū) 建立新的工作環(huán)境(建立新的工作環(huán)境(SPSP,TOPTOP) 保護(hù)返回地址保護(hù)返回地址目標(biāo)代碼:目標(biāo)代碼: SP:=TOP+1 (SP:=TOP+1 (新新SP)SP) 1SP= 1SP=返回地址返回地址 TOP:=TOP+L (TOP:=TOP+L (新新TOP)TOP)L
8、 L:過程活動記錄大小,靜態(tài)確定:過程活動記錄大小,靜態(tài)確定 Int xMain() x=10; R; Void R(int c) int b,M3; b=5; Mc=x+2; if Mc5 Q; Void Q( ) R(1) TOP108107106105104形參形參 c1103參數(shù)個數(shù)參數(shù)個數(shù)1102返回地址返回地址101SP 老老SPSP50 100TOPQ99SP 50R1mainX X 1010全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū)調(diào)用順序調(diào)用順序過程進(jìn)入過程進(jìn)入MainMain R R1 1Q Q R R2 2SP:=TOP+1SP:=TOP+11SP=1SP=返回地址返回地址 TOP:=TOP+
9、L TOP:=TOP+L 3.3.數(shù)組分配空間數(shù)組分配空間 將將TOP+1TOP+1填入數(shù)組內(nèi)情向量的填入數(shù)組內(nèi)情向量的a a處處( (起始地址起始地址) ); 數(shù)組大小數(shù)組大小=M=M, TOP:=TOP+MTOP:=TOP+MVoid R(int c) int b , M3; b=5; Mc=x+2; if Mc5 Q; TOP M2111 M1110 數(shù)組區(qū)數(shù)組區(qū)M0109 TOP 臨時變量臨時變量T1108第第1維維長維維長d13107M維數(shù)維數(shù)1106M起始地址起始地址a 109 105b5104形參形參 c1103參數(shù)個數(shù)參數(shù)個數(shù)1102返回地址返回地址101SP老老SPSP50
10、100R R2 2數(shù)數(shù)據(jù)據(jù)區(qū)區(qū)R R2 2活活動動記記錄錄內(nèi)情內(nèi)情向量向量4. 4. 引用各種數(shù)據(jù)的方式引用各種數(shù)據(jù)的方式 參數(shù)、局部量、臨時單元、內(nèi)情向量:參數(shù)、局部量、臨時單元、內(nèi)情向量: 設(shè)相對數(shù)設(shè)相對數(shù)= t ,以,以SPSP為變址器訪問:為變址器訪問:tSPtSP 數(shù)組元素?cái)?shù)組元素 * * 從內(nèi)情向量查出從內(nèi)情向量查出a a,維長等,計(jì)算出相對數(shù),維長等,計(jì)算出相對數(shù)t t ; * * 變址訪問變址訪問 tata 全局量:從全局?jǐn)?shù)據(jù)區(qū)取;全局量:從全局?jǐn)?shù)據(jù)區(qū)??;TOP M2111+10M112 110+9M0109+8臨時變量臨時變量T112 108+7第第1維維長維維長d13107
11、+6M維數(shù)維數(shù)1106+5M起始地址起始地址a109 105+4b5104+3+3形參形參 c1103+2+2參數(shù)個數(shù)參數(shù)個數(shù)1102+1+1返回地址返回地址101SP 老老SPSP50 100Q9950R1mainX 10X 10Void R(int c) int b, M3; b=5; Mc=x+2; if Mc5 Q; 對名字的訪問:對名字的訪問:. 局部名:局部名: b = 4SP. 參數(shù):參數(shù): c = 3SP. 臨時變量:臨時變量:T1 = 8SP. 內(nèi)情向量中,內(nèi)情向量中, 數(shù)組起始地址數(shù)組起始地址a = 5SP對名字的訪問:對名字的訪問:. 數(shù)組元素?cái)?shù)組元素M1: * 取出內(nèi)情
12、向量中,數(shù)組起始取出內(nèi)情向量中,數(shù)組起始 地址地址a; 即:即: 5SP=109; * 計(jì)算出計(jì)算出M1的相對數(shù)的相對數(shù)=1; * M1: = 1109 . 全局量全局量x: = 0全局全局SPTOP M2111+10M112 110+9M0109+8臨時變量臨時變量T112 108+7第第1維維長維維長d13107+6M維數(shù)維數(shù)1106+5M起始地址起始地址a 109 105+4b5104+3+3形參形參 c1103+2+2參數(shù)個數(shù)參數(shù)個數(shù)1102+1+1返回地址返回地址101SP 老老SPSP50 100Q9950R1mainX 10X 10Void R(int c) int b, M3; b=5; Mc=x+2; if Mc5 Q; 5.5.過程返回過程返回 TOP形式單元形式單元參數(shù)個數(shù)參數(shù)個數(shù)返回地址返回地址SP老老SP(QSP(Q的的SP)SP)TOPQSPR1main全局?jǐn)?shù)據(jù)區(qū)全局?jǐn)?shù)據(jù)區(qū)過程定義的中間代碼:過程定義的中間代碼: proc 過程名過程名 過程體過程體 return (m) e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年私人借貸合同范本:個人資金周轉(zhuǎn)借款合同版B版
- 2025年度出口退稅證明開具與海外市場拓展支持合同3篇
- 2024年運(yùn)輸合同電子數(shù)據(jù)交換與區(qū)塊鏈技術(shù)應(yīng)用3篇
- 2024幼兒園新生入園協(xié)議及家長責(zé)任承諾書3篇
- 2024幼兒園場所租賃合同(包含使用權(quán)及附屬設(shè)施維護(hù))3篇
- 2024年環(huán)保項(xiàng)目投資與建設(shè)運(yùn)營合同
- 2024年車輛分期付款協(xié)議書
- 2024年聯(lián)盟合作框架協(xié)議
- 課題申報(bào)書:創(chuàng)新街區(qū)視角下高等教育服務(wù)城市創(chuàng)新的國際比較研究
- 2024年牙科診所消毒供應(yīng)中心人員培訓(xùn)合同協(xié)議書3篇
- 軍工合作合同范例
- 2025年中國稀土集團(tuán)總部部分崗位社會公開招聘管理單位筆試遴選500模擬題附帶答案詳解
- 超市柜臺長期出租合同范例
- 人教版三年級下冊數(shù)學(xué)期中測試卷含答案(新)
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測試語文試題(含答案)
- 【8物(科)期末】合肥市第四十五中學(xué)2023-2024學(xué)年八年級上學(xué)期期末物理試題
- 統(tǒng)編版2024-2025學(xué)年三年級語文上冊期末學(xué)業(yè)質(zhì)量監(jiān)測試卷(含答案)
- 從0 開始運(yùn)營抖?音號sop 文檔
- Module7 Unit2 This little girl can't walk(Period 1) (教學(xué)實(shí)錄) -2024-2025學(xué)年外研版(三起)英語五年級上冊
- 2024年01月11190當(dāng)代中國政治制度期末試題答案
- 2024-2025學(xué)年深圳市初三適應(yīng)性考試模擬試卷歷史試卷
評論
0/150
提交評論