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

正文內(nèi)容

第六章運(yùn)行時存儲空間的組織和管理-文庫吧在線文庫

2025-09-03 13:21上一頁面

下一頁面
  

【正文】 態(tài)概念的對應(yīng) 靜 態(tài) 概 念 動 態(tài) 對 應(yīng) 過程的定義 過程的活動 名字的聲明 名字的綁定 聲明的作用域 綁定的生存期 局部存儲分配 活動記錄 活動記錄的常見布局 臨 時 數(shù) 據(jù) 參 數(shù) 局 部 數(shù) 據(jù) 機(jī) 器 狀 態(tài) 訪 問 鏈 控 制 鏈 返 回 值 局部存儲分配 局部數(shù)據(jù)的布局 ? 字節(jié)是可編址內(nèi)存的最小單位 ? 變量所需的存儲空間可以根據(jù)其類型而靜態(tài)確定 ? 一個過程所聲明的局部變量 , 按這些變量聲明時出現(xiàn)的次序 , 在局部數(shù)據(jù)域中依次分配空間 ? 局部數(shù)據(jù)的地址可以用相對于活動記錄中某個位置的地址來表示 ? 數(shù)據(jù)對象的存儲布局還有一個對齊問題 局部存儲分配 ? 例 在 SPARC/Solaris工作站上下面兩個結(jié)構(gòu)體的 size分別是 24和 16, 為什么不一樣 ? typedef struct _a{ typedef struct _b{ char c1。 double f。 8 long i。 0 long i。 對齊: char : 1, long : 4, double : 4 局部存儲分配 程序塊 ? 本身含有局部變量聲明的語句 ? 可以嵌套 ? 最接近的嵌套 作用域規(guī)則 ? 并列程序塊不會同時活躍 ? 并列程序塊的變量可以重疊分配 局部存儲分配 main() / ? 例 ?/ { /? begin of B0 ?/ int a = 0。 {/? begin of B2 ?/ int a = 2。 top_sp的值在此過程中被改變 返回值和參數(shù) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) top_sp 全局棧式存儲分配 過程 p調(diào)用過程 q的調(diào)用序列 (2) p把返回地址和當(dāng)前 base_sp的值存入 q的活動記錄中,建立 q的訪問鏈,增加 base_sp的值 返回值和參數(shù) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈和返回地址 base_sp top_sp 全局棧式存儲分配 過程 p調(diào)用過程 q的調(diào)用序列 (3) q保存寄存器的值和其它機(jī)器狀態(tài)信息 返回值和參數(shù) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈 和保存的機(jī)器狀態(tài) 全局棧式存儲分配 過程 p調(diào)用過程 q的調(diào)用序列 (4) q根據(jù)局部數(shù)據(jù)域和臨時數(shù)據(jù)域的大小增加 top_sp的值,初始化它的局部數(shù)據(jù),并開始執(zhí)行過程體 臨時數(shù)據(jù)局部數(shù)據(jù) 返回值和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 全局棧式存儲分配 調(diào)用者 p和被調(diào)用者 q之間的任務(wù)劃分 被調(diào)用者 q的責(zé)任 調(diào)用者 p的責(zé)任 調(diào)用者 p的 活動記錄 被調(diào)用者 q的活動記錄 臨時數(shù)據(jù)局部數(shù)據(jù) 返回值和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 全局棧式存儲分配 過程 p調(diào)用過程 q的返回序列 臨時數(shù)據(jù)局部數(shù)據(jù) 返回值和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 全局棧式存儲分配 過程 p調(diào)用過程 q的返回序列 臨時數(shù)據(jù)局部數(shù)據(jù) 返回值 和參數(shù) 返回值和參數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (1) q把返回值置入鄰近 p的活動記錄的地方 參數(shù)個數(shù)可變場合難以確定存放返回值的位置,因此通常用寄存器傳遞返回值 全局棧式存儲分配 過程 p調(diào)用過程 q的返回序列 (2) q對應(yīng)調(diào)用序列的步驟 (4),減小top_sp的值 返回值和參數(shù) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 控制鏈 和保存的機(jī)器狀態(tài) 全局棧式存儲分配 過程 p調(diào)用過程 q的返回序列 (3) q恢復(fù)寄存器 (包括 base_sp)和機(jī)器狀態(tài),返回 p 返回值和參數(shù) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? 返回值和參數(shù) 全局棧式存儲分配 過程 p調(diào)用過程 q的返回序列 返回值和參數(shù) top_sp base_sp 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (4) p根據(jù)參數(shù)個數(shù)與類型和返回值類型調(diào)整 top_sp, 然后取出返回值 全局棧式存儲分配 過程的參數(shù)個數(shù)可變的情況 臨時數(shù)據(jù)局部數(shù)據(jù) 參 數(shù) 參 數(shù) ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (1) 函數(shù)返回值改成用寄存器傳遞 全局棧式存儲分配 過程的參數(shù)個數(shù)可變的情況 臨時數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (2) 編譯器產(chǎn)生將實參表達(dá)式逆序計算并將結(jié)果進(jìn)棧的代碼 自上而下依次是參數(shù) 1, …, 參數(shù)n 全局棧式存儲分配 過程的參數(shù)個數(shù)可變的情況 臨時數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (3) 被調(diào)用函數(shù)能準(zhǔn)確地知道第一個參數(shù)的位置 全局棧式存儲分配 過程的參數(shù)個數(shù)可變的情況 臨時數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? (4) 被調(diào)用函數(shù)根據(jù)第一個參數(shù)到棧中取第二、第三個參數(shù)等等 全局棧式存儲分配 過程的參數(shù)個數(shù)可變的情況 臨時數(shù)據(jù)局部數(shù)據(jù) 參數(shù) 1, …, 參數(shù) n 參數(shù) 1, …, 參數(shù) m ? ? ? 控制鏈 和保存的機(jī)器狀態(tài) top_sp base_sp 棧 增 長 方 向 臨時數(shù)據(jù)局部數(shù)據(jù) 控制鏈 和保存的機(jī)器狀態(tài) ? ? ? C語言的 printf函 數(shù)就是按此方式, 用 C語言編寫的 下面語句的輸出? printf(“%d, %d, %d\n”)。 begin writeln(h(2)) end 。( 過程作為參數(shù) ) procedure b(function h(… begin writeln(h(2)) end 。 procedure c。 var m: integer。 function addm (n: integer): integer。( 過程作為返回值 ) var f: function (integer): integer。 begin writeln (g(2)) end。 begin r := 。 writeln end. dynamic show small small show show show 非局部名字的訪問 program dynamic(input, output)。 begin 靜態(tài)作用域 r := 。 procedure show。 small。 begin write(r: 5: 3) end。 writeln。 var r: real。 small。 show end。 var r: real。 show。 begin write(r: 5: 3) end。 writeln。 var r: real。 small。 x := y。 var temp: integer。 char name[10000][20]。 } 例 題 1 .data | .align 4 .align 4 | .type ,object .type aa,object | .size ,4 .size aa,4 | : aa: | .long 30 .long 10 | .text .globl bb | .align 4 .align 2 | .globl func .type bb,object | func: .size bb,2 | . . . bb: | movw $40,2(%ebp) .value 20 | . . . static long aa = 10。 } 例 題 1 .data | .align 4 .align 4 | .type ,object .type aa,object | .size ,4 .size aa,4 | : aa: | .long 30 .long 10 | .text .globl bb | .align 4 .align 2 | .globl func .type bb,object | func: .size bb,2 | . . . bb: | movw $40,2(%ebp) .value 20 | . . . static long aa = 10。 } 例 題 1 .data | .align 4 .align 4 | .type ,object .type aa,object | .size ,4 .size aa,4 | : aa: | .long 30 .long 10 | .text .globl bb | .align 4 .align 2 | .globl func .type bb,object | func: .size bb,2 | . . . bb: | movw $40,2(%ebp) .value 20 | . . . static long aa = 10。 } 例 題 2 func(i) long i。 decl %edx i – 1 } movl %edx,4(%ebp) i – 1 ? j movl 4(%ebp),%eax pushl %eax 把實參 j的值壓棧 call func 函數(shù)調(diào)用
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1