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

正文內(nèi)容

06-第6章-運(yùn)行時(shí)存儲(chǔ)空間的組織和管理-編譯原理-中國(guó)科-預(yù)覽頁(yè)

 

【正文】 局部數(shù)據(jù) 返回值 和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (1) q把返回值置入鄰近 p的活動(dòng)記錄的地方 參數(shù)個(gè)數(shù)可變場(chǎng)合難以確定存放返回值的位置,因此通常用寄存器傳遞返回值 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 (2) q對(duì)應(yīng)調(diào)用序列的步驟 (4),減小top_sp的值 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈 和保存的機(jī)器狀態(tài) 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 (3) q恢復(fù)寄存器 (包括 base_sp)和機(jī)器狀態(tài),返回 p 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 全局棧式存儲(chǔ)分配 過(guò)程 p調(diào)用過(guò)程 q的返回序列 返回值和參數(shù) top_sp base_sp 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (4) p根據(jù)參數(shù)個(gè)數(shù)與類型和返回值類型調(diào)整 top_sp, 然后取出返回值 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參 數(shù) 參 數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (1) 函數(shù)返回值改成用寄存器傳遞 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (2) 編譯器產(chǎn)生將實(shí)參表達(dá)式逆序計(jì)算并將結(jié)果進(jìn)棧的代碼 自上而下依次是參數(shù) 1, …, 參數(shù)n 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (3) 被調(diào)用函數(shù)能準(zhǔn)確地知道第一個(gè)參數(shù)的位置 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (4) 被調(diào)用函數(shù)根據(jù)第一個(gè)參數(shù)到棧中取第二、第三個(gè)參數(shù)等等 全局棧式存儲(chǔ)分配 過(guò)程的參數(shù)個(gè)數(shù)可變的情況 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長(zhǎng) 方 向 臨時(shí)數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? C語(yǔ)言的 printf函 數(shù)就是按此方式, 用 C語(yǔ)言編寫(xiě)的 下面語(yǔ)句的輸出? printf(“%d, %d, %d\n”)。 | return j。 procedure c。 begin m := 0。 procedure c。 b(f) end {c}。 var m: integer。 begin c end. f作為參數(shù)傳遞時(shí),它的起始地址連同它的訪問(wèn)鏈一起傳遞 訪 問(wèn) 鏈 訪 問(wèn) 鏈 param c m b f, 非局部名字的訪問(wèn) program param(input, output)。 function f(n: integer)… begin f := m+n end {f}。( 過(guò)程作為返回值 ) var f: function (integer): integer。 begin return m+n end。 begin writeln (g(2)) end。 function a: function (integer): integer。 begin m:= 0。 begin f := a。 begin write(r: 5: 3) end。 show end。 writeln。 var r: real。 var r: real。 show。 small。 begin write(r: 5: 3) end。 show end。 writeln。 n的先前值保存在 p的 活動(dòng)記錄 中 , 當(dāng) p的活動(dòng)結(jié)束時(shí)再恢復(fù) 非局部名字的訪問(wèn) program dynamic(input, output)。 procedure small。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 procedure show。 begin r := 。 small。 writeln end. dynamic show small small show show show r dynamic r ? 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 非局部名字的訪問(wèn) program dynamic(input, output)。 procedure small。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 procedure show。 begin r := 。 small。 writeln end. dynamic show small small show show show r dynamic r ? small r 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 非局部名字的訪問(wèn) program dynamic(input, output)。 procedure small。 begin (綠色表示已執(zhí)行部分 ) r := 。 show。 procedure show。 begin r := 。 small。 writeln end. dynamic show small small show show show r dynamic r ? 靜態(tài)區(qū) 使用值的地方 棧區(qū) 暫存值的地方 參 數(shù) 傳 遞 值調(diào)用 ? 實(shí)參的右值傳給被調(diào)用過(guò)程 ? 值調(diào)用可以如下實(shí)現(xiàn) – 把形參當(dāng)作所在過(guò)程的局部名看待 , 形參的存儲(chǔ)單元在該過(guò)程的活動(dòng)記錄中 – 調(diào)用過(guò)程 計(jì)算實(shí)參 , 并把其右值放入 被調(diào)用過(guò)程形參的存儲(chǔ)單元中 參 數(shù) 傳 遞 引用調(diào)用 ? 實(shí)參的左值傳給被調(diào)用過(guò)程 ? 引用調(diào)用可以如下實(shí)現(xiàn): – 把形參當(dāng)作所在過(guò)程的局部名看待 , 形參的存儲(chǔ)單元在該過(guò)程的活動(dòng)記錄中 – 調(diào)用過(guò) 程計(jì)算實(shí)參 , 把實(shí)參的左值放入被調(diào)用過(guò)程形參的存儲(chǔ)單元 – 在被調(diào)用過(guò)程的目標(biāo)代碼中 , 任何對(duì)形參的引用都是通過(guò)傳給該過(guò)程的指針來(lái)間接引用實(shí)參 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 y := temp end 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 y := temp end 參 數(shù) 傳 遞 換名調(diào)用 從概念上說(shuō) , 每次調(diào)用時(shí) , 用實(shí)參表達(dá)式對(duì) 形參進(jìn)行正文替換 , 然后再執(zhí)行 procedure swap(var x, y: integer)。 i := a[i]。 例如: 調(diào)用 swap(i, a[i]) begin 替換結(jié)果: temp := i。 a[i] := temp y := temp 交換兩個(gè)數(shù)據(jù)的程序 end 并非總是正確 堆 管 理 堆式分配 ? 堆用來(lái)存放生存期不確定的數(shù)據(jù) – C++和 Java允許程序員用 new創(chuàng)建對(duì)象 , 它們的生存期沒(méi)有被約束在創(chuàng)建它們的過(guò)程活動(dòng)的生成期之內(nèi) – 實(shí)現(xiàn)內(nèi)存回收是內(nèi)存管理器的責(zé)任 ? 堆空間的回收有兩種不同方式 – 程序顯式釋放空間: free( C) 或 delete( C++) – 垃圾收集器自動(dòng)收集 ( Java) 。 char name[20]。 short bb = 20。 short bb = 20。 short bb = 20。 short bb = 20。 short bb = 20。 short bb = 20。 short bb = 20。 { long j。 pushl %ebp 老的基地址指針壓棧 { movl %esp,%ebp修改 基地址指針 long j。 pop ebp ret 即 pop eip(下條指令地址 ) . . . 參數(shù) i 返址 控制鏈 變量 j . . . ebp esp 棧 低 高 例 題 2 func(i) func: long i。 decl %edx i – 1 } movl %edx,4(%ebp) i – 1 ? j movl 4(%ebp),%eax pushl %eax 把實(shí)參 j的值壓棧 call func 函數(shù)調(diào)用 addl $4,%esp 恢復(fù)棧頂指針 L1: leave 即 mov ebp, esp。 movl 8(%ebp),%edx 取 i到 寄存器 func(j)。 subl $4,%esp 為 j分配空間 j= i 1。 pushl %ebp 老的基地址指針壓棧 { movl %esp,%ebp修改 基地址指針 long j。 pop ebp ret 即 pop eip(下條指令地址 ) . . . . . . ebp esp 參數(shù) i 返址 控制鏈 例 題 2 func(i) func: long i。 decl %edx i – 1 } movl %edx,4(%ebp) i – 1 ? j movl 4(%ebp),%eax pushl %eax 把實(shí)參 j的值壓棧 call func 函數(shù)調(diào)用 addl $4,%esp 恢復(fù)棧頂指針 L1: leave 即 mov ebp, esp。 movl 8(%ebp),%edx 取 i到 寄存器 fun
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1