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

正文內(nèi)容

06-第6章-運行時存儲空間的組織和管理-編譯原理-中國科(參考版)

2025-01-16 03:14本頁面
  

【正文】 subl $4,%esp 為 j分配空間 j= i 1。 pop ebp ret 即 pop eip(下條指令地址 ) . . . . . . ebp esp 參數(shù) i 返址 控制鏈 例 題 2 func(i) func: long i。 movl 8(%ebp),%edx 取 i到 寄存器 func(j)。 pushl %ebp 老的基地址指針壓棧 { movl %esp,%ebp修改 基地址指針 long j。 decl %edx i – 1 } movl %edx,4(%ebp) i – 1 ? j movl 4(%ebp),%eax pushl %eax 把實參 j的值壓棧 call func 函數(shù)調(diào)用 addl $4,%esp 恢復(fù)棧頂指針 L1: leave 即 mov ebp, esp。 subl $4,%esp 為 j分配空間 j= i 1。 pop ebp ret 即 pop eip(下條指令地址 ) . . . . . . ebp esp 參數(shù) i 返址 例 題 2 func(i) func: long i。 movl 8(%ebp),%edx 取 i到 寄存器 func(j)。 pushl %ebp 老的基地址指針壓棧 { movl %esp,%ebp修改 基地址指針 long j。 decl %edx i – 1 } movl %edx,4(%ebp) i – 1 ? j movl 4(%ebp),%eax pushl %eax 把實參 j的值壓棧 call func 函數(shù)調(diào)用 addl $4,%esp 恢復(fù)棧頂指針 L1: leave 即 mov ebp, esp。 subl $4,%esp 為 j分配空間 j= i 1。 pop ebp ret 即 pop eip(下條指令地址 ) . . . . . . ebp esp 例 題 2 func(i) func: long i。 movl 8(%ebp),%edx 取 i到 寄存器 func(j)。 pushl %ebp 老的基地址指針壓棧 { movl %esp,%ebp修改 基地址指針 long j。 decl %edx i – 1 } movl %edx,4(%ebp) i – 1 ? j movl 4(%ebp),%eax pushl %eax 把實參 j的值壓棧 call func 函數(shù)調(diào)用 addl $4,%esp 恢復(fù)棧頂指針 L1: leave 即 mov ebp, esp。 subl $4,%esp 為 j分配空間 j= i 1。 } 例 題 2 func(i) func: long i。 j= i 1。 } 例 題 2 func(i) long i。 func( ) { static long cc = 30。 } 例 題 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。 func( ) { static long cc = 30。 } 例 題 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。 func( ) { static long cc = 30。 } 例 題 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。 func( ) { static long cc = 30。 } 例 題 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。 func( ) { static long cc = 30。 } 例 題 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。 func( ) { static long cc = 30。 } 例 題 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。 func( ) { static long cc = 30。 根據(jù)所生成的匯編程序來解釋程序中四個變 量的存儲分配 、 生存期 、 作用域和置初值方式等方面 的區(qū)別 static long aa = 10。 … … … … } struct student st[10000]。 char name[10000][20]。 收集算法 , 本課程不做介紹 堆 管 理 內(nèi)存管理器 ? 內(nèi)存管理器把握的基本信息是堆中空閑空間 – 分配函數(shù) – 回收函數(shù) ? 內(nèi)存管理器應(yīng)具有下列性質(zhì) – 空間有效性:極小化程序需要的堆空間總量 – 程序有效性:較好地利用內(nèi)存子系統(tǒng) , 使得程序能運行得快一些 – 低開銷 : 分配和回收操作所花時間在整個程序執(zhí)行時間中的比例盡量小 堆 管 理 計算機內(nèi)存分層 虛擬內(nèi)存 (磁盤 ) 物理內(nèi)存 2級緩存 1級緩存 寄存器 (處理器 ) 典型大小 2千兆字節(jié) 256兆 ?2千兆字節(jié) 128千 ?4兆字節(jié) 16?64千字節(jié) 32字 典型訪問時間 3?15微秒 100?150納秒 40?60納秒 5?10納秒 1納秒 堆 管 理 計算機內(nèi)存分層 – 現(xiàn)代計算機都設(shè)計成程序員不用關(guān)心內(nèi)存子系統(tǒng)的細(xì)節(jié)就可以寫出正確的程序 – 程序的效率不僅取決于被執(zhí)行的指令數(shù) , 還取決于執(zhí)行每條指令需要多長時間 – 執(zhí)行一條指令的時間區(qū)別非??捎^ – 差異源于硬件技術(shù)的基本局限:構(gòu)造不了大容量的高速存儲器 – 數(shù)據(jù)以塊 ( 緩存行 、 頁 ) 為單位在相鄰層次之間進行傳送 – 數(shù)據(jù)密集型程序可從恰當(dāng)利用內(nèi)存子系統(tǒng)中獲益 堆 管 理 程序局部性 ? 大多數(shù)程序的大部分時間在執(zhí)行一小部分代碼 , 并且僅涉及一小部分?jǐn)?shù)據(jù) ? 時間局部性 – 程序訪問的內(nèi)存單元在很短的時間內(nèi)可能再次被程序訪問 ? 空間局部性 – 毗鄰被訪問單元的內(nèi)存單元在很短的時間內(nèi)可能被訪問 堆 管 理 程序局部性 – 即使知道哪些指令會被頻繁執(zhí)行 , 最快的緩存也可能沒有大到足以把它們同時放在其中 , 因此必須動態(tài)調(diào)整最快緩存的內(nèi)容 – 把最近使用的指令保存在緩存是一種較好的最優(yōu)化利用內(nèi)存分層的策略 – 改變數(shù)據(jù)布局或計算次序也可以改進程序數(shù)據(jù)訪問的時間和空間局部性 堆 管 理 例: 一個結(jié)構(gòu)體大數(shù)組 分拆成若干個數(shù)組 struct student { int num[10000]。 x := y。 temp := x。 var temp: integer。 x := y。 temp := x。 var temp: integer。 x := y。 var temp: integer。 x := y。 var temp: integer。 small。 writeln。 show。 show end。 var r: real。 begin write(r: 5: 3) end。 var r: real。 small。 writeln。 show。 show end。 var r: real。 begin write(r: 5: 3) end。 var r: real。 small。 writeln。 show。 show end。 var r: re
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1