




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第八章 運轉(zhuǎn)時存儲空間組織8.1 目的程序運轉(zhuǎn)時的活動 以Pascal為例,假定程序由假設(shè)干個過程組成 過程procedure定義一個過程的活動指的是該過程的一次執(zhí)行 過程P一個活動的生存期,指的是從執(zhí)行該過程體第一步操作到最后一步操作之間的操作序,包括執(zhí)行P時調(diào)用其它過程破費的時間過程可以是遞歸的1 program sort(input, output)2 var a: array0.10 of integer;3 procedure readarray;4 var i: integer;5 begin6 for i:=1 to 9 do read(ai)7 end;8 function p
2、artition(y, z:integer):integer;9 var i:integer;10 begin .11 end;program sort procedure readarray function partition(y procedure quicksort12 procedure quicksort(m, n:integer);13 var i:integer;14 begin15 if (nm) then begin16 i:=partition(m, n );17 quicksort(m, i-1 );18 quicksort(i+1, n )19 end;20 end;
3、21 begin22 a0:=-9999; a10:=9999;23 readarray;24 quicksort(1, 9 )25 gram sort procedure readarray function partition(y procedure quicksort參數(shù)傳送過程是模塊程序設(shè)計的主要手段,同時也是節(jié)省程序代碼和擴展言語的主要途徑。過程定義:procedure add(x,y:integer; var z:integer) begin z:=x+y; end;過程調(diào)用 add(a,b,c); 參數(shù)傳送方式一. 傳地址把真實參數(shù)的地址傳送給相應(yīng)的方式參數(shù)方法:調(diào)
4、用段預(yù)先把真實參數(shù)的地址傳送到被調(diào)用段可以拿到的地方;程序控制轉(zhuǎn)入被調(diào)用段之后,被調(diào)用段首先把真實參數(shù)的地址抄進本人相應(yīng)的方式單元中;過程體對方式參數(shù)的援用域賦值被處置成對方式單元的間接訪問。PASCAL的變量參數(shù)方式procedure swap (var m:integer; var n: integer); var i:integer; begin i:=m; m:=n; n:=i; endswap(a,b)把a,b的地址送到知單元j1和j2中m:=j1;n:=j2;i:=m;m:= n;n:=i;參數(shù)傳送方式二得結(jié)果傳地址的一種變形方法:每個形參對應(yīng)兩個方式單元,第一個方式單元存放實參地
5、址,第二個單元存放實參的值。在過程體中對方式參數(shù)的任何援用或賦值都看作對它的第二個單元的直接訪問。過程完成前往前把第二個單元的內(nèi)容存放到第一個單元所指的實參單元中。有些Fortran采用這種方式;參數(shù)傳送方式三傳值把真實參數(shù)的值傳送給相應(yīng)的方式參數(shù)方法:調(diào)用段預(yù)先把真實參數(shù)的的值計算出來并放在被調(diào)用段可以拿到的地方;被調(diào)用段開場任務(wù)時,首先把實參的值抄入方式參數(shù)相應(yīng)的單元;被調(diào)用段中,象援用部分數(shù)據(jù)一樣援用方式單元。PASCAL的值參數(shù)參數(shù)傳送方式四傳名過程調(diào)用的作用相當(dāng)于把被調(diào)用段的過程體抄到調(diào)用出現(xiàn)的地方,但把其中任一出現(xiàn)的方式參數(shù)都交換成相應(yīng)的實參。方法: 在進入被調(diào)用段的之前不對真實參
6、數(shù)預(yù)先進展計值,而是讓過程體中每當(dāng)運用到相應(yīng)的方式參數(shù)時才逐次對它實行計值或計算地址。因此,通常把真實參數(shù)處置成一個子程序稱為參數(shù)子程序,每當(dāng)過程體中運用到相應(yīng)的方式參數(shù)時就調(diào)用這個子程序。PROGRAM EX var A:integer;PROCEDURE P(B:integer)var A:integer;BEGIN A:=0; B:=B+1; A:=A+B;END;BEGIN A :=2; TA:=0; A:= A +1; TA:=TA+ A; write(A);ENDBEGIN A:=2; P(A); write(A);END例:procedure P(w,x,y,z);begin y
7、 := y*w; z := z+x;endbegin a := 5; b := 3; P(a+b,a-b,a,a); write(a);end傳值:傳地址:得結(jié)果:傳名:542777編譯程序為了組織存儲空間,必需思索下面幾個問題:過程能否允許遞歸?當(dāng)控制從一個過程的活動前往時,對部分稱號的值如何處置?過程能否允許援用非部分稱號?過程調(diào)用時如何傳送參數(shù);過程能否可以做為參數(shù)被傳送和做為結(jié)果被前往?存儲空間可否在程序控制下進展動態(tài)分配?存儲空間能否必需顯式地釋放? 8.2 運轉(zhuǎn)時存儲器的劃分 一個目的程序運轉(zhuǎn)所需的存儲空間包括:存放目的代碼的空間存放數(shù)據(jù)工程的空間存放程序運轉(zhuǎn)的控制或銜接數(shù)據(jù)所需單
8、元(控制棧)一個程序在運轉(zhuǎn)時辰的內(nèi)存劃分:代碼(Code)靜態(tài)數(shù)據(jù)(Static Data)棧(Stack)堆(Heap)8.2.2 活動記錄假定言語的特點為:允許過程遞歸調(diào)用、允許過程含有可變數(shù)組,但過程定義不允許嵌套,如C言語。采用棧式存儲分配機制活動記錄:運轉(zhuǎn)時,每當(dāng)進入一個過程就有一個相應(yīng)的活動記錄累筑于棧頂。此記錄含有銜接數(shù)據(jù)、方式單元、部分變量、部分數(shù)組的內(nèi)情向量和暫時任務(wù)單元等。對任何部分變量X的援用可表示為變址訪問: dxSP dx: 變量X相對于活動記錄起點的地址,在編譯時可確定。參數(shù)個數(shù)前往地址方式單元暫時單元內(nèi)情向量部分變量SP 012老SPTOP 每個過程的活動記錄內(nèi)容
9、(非嵌套言語)銜接數(shù)據(jù)前往地址動態(tài)鏈:指向調(diào)用該過程前的最新活動記錄地址的指針。靜態(tài)鏈:指向靜態(tài)直接外層最新活動記錄地址的指針,用來訪問非部分數(shù)據(jù)。靜態(tài)鏈動態(tài)鏈方式單元暫時單元內(nèi)情向量部分變量SP 012前往地址TOP 每個過程的活動記錄內(nèi)容(嵌套言語)方式單元:存放相應(yīng)的真實參數(shù)的地址或值。部分數(shù)據(jù)區(qū):部分變量、內(nèi)情向量、暫時任務(wù)單元如存放對表達式求值的結(jié)果。靜態(tài)鏈動態(tài)鏈方式單元暫時單元內(nèi)情向量部分變量SP 012前往地址TOP 每個過程的活動記錄內(nèi)容 靜態(tài)分配戰(zhàn)略(FORTRAN) 假設(shè)在編譯時能確定數(shù)據(jù)空間的大小,那么可采用靜態(tài)分配方法:在編譯時辰為每個數(shù)據(jù)工程確定出在運轉(zhuǎn)時辰的存儲空間
10、中的位置。動態(tài)分配戰(zhàn)略(PASCAL) 假設(shè)在編譯時不能確定運轉(zhuǎn)時數(shù)據(jù)空間的大小,那么必需采用動態(tài)分配方法。允許遞歸過程和動態(tài)懇求釋放內(nèi)存。棧式動態(tài)分配堆式動態(tài)分配8.2.3 存儲分配戰(zhàn)略 PROGRAM MAIN integer X,YCOMMON /C/A,B ENDSUBROUTINE SUB1 real X,ZCOMMON /C/A1,B1 END8.3靜態(tài)存儲管理8.3靜態(tài)存儲管理FORTRAN程序的特點:整個程序所需數(shù)據(jù)空間的總量在編譯時完全確定,每個數(shù)據(jù)名的地址可以靜態(tài)地進展分配。由于每個FORTRAN 程序段可以獨立編譯,運轉(zhuǎn)前由裝入程序把各段連成可運轉(zhuǎn)的整體。通常按數(shù)據(jù)區(qū)組織
11、存儲:每個程序段定義一個部分數(shù)據(jù)區(qū),用來存放程序段中未出如今COMMON里的部分名的值。每個公用塊定義一個公用數(shù)據(jù)區(qū),用來存放公用塊里各個名字的值。每個數(shù)據(jù)區(qū)有一個編號,地址分配時,在符號表中,對每個數(shù)據(jù)名登記其所屬數(shù)據(jù)區(qū)編號及在該區(qū)中的相對位置。每個部分數(shù)據(jù)區(qū)的內(nèi)容及存放次序:存放器維護區(qū)前往地址方式單元暫時變量數(shù)組簡單變量01A思索子程序段:SUBROUTINE SWAP(A,B)T=AA=BB=TRETURNEND存放器維護區(qū)前往地址ATB01a8.4 一個簡單棧式存儲分配假定言語的特點為:允許過程遞歸調(diào)用、允許過程含有可變數(shù)組,但過程定義不允許嵌套,如C言語。采用棧式存儲分配機制活動記
12、錄:運轉(zhuǎn)時,每當(dāng)進入一個過程就有一個相應(yīng)的活動記錄累筑于棧頂。此記錄含有銜接數(shù)據(jù)、方式單元、部分變量、部分數(shù)組的內(nèi)情向量和暫時任務(wù)單元等。 全局數(shù)聽闡明Main( ) Main中的數(shù)聽闡明 void R( ) R中的數(shù)聽闡明void Q( ) Q中的數(shù)聽闡明主程序過程Q 過程RQ的活動記錄主程序活動記錄TOPR的活動記錄SP參數(shù)個數(shù)前往地址方式單元內(nèi)情向量部分變量老SP暫時單元全局數(shù)據(jù)區(qū)每個過程的活動記錄內(nèi)容如圖:對任何部分變量X的援用可表示為變址訪問: dxSP dx: 變量X相對于活動記錄起點的地址,在編譯時可確定。參數(shù)個數(shù)前往地址方式單元暫時單元內(nèi)情向量部分變量SP 012老SPTOP
13、8.4.1 C的活動記錄 過程調(diào)用的四元式序列:par T1par T2 par Tncall P,n8.4.2 C的過程調(diào)用、過程進入、數(shù)組空間分配和過程前往 1) 每個par Ti(i=1,2,n)可直接翻譯成如下指令:(i+3)TOP:= Ti (傳值)(i+3)TOP:=addr(Ti) (傳地址)2) call P,n 被翻譯成:1TOP:=SP (維護現(xiàn)行SP)3TOP:=n (傳送參數(shù)個數(shù))JSR P (轉(zhuǎn)子指令)參數(shù)個數(shù)前往地址方式單元內(nèi)情向量部分變量老SP暫時單元對于par和call產(chǎn)生的目的代碼如下:TOP SP 調(diào)用過程的活動記錄方式單元老SP參數(shù)個數(shù)3) 轉(zhuǎn)進過程P后,
14、首先應(yīng)執(zhí)行下述指令:SP:=TOP+1 (定義新的SP)1SP:=前往地址 (維護前往地址)TOP:=TOP+L (新TOP) L:過程P的活動記錄所需單元數(shù), 在編譯時可確定。 參數(shù)個數(shù)前往地址方式單元內(nèi)情向量部分變量老SP暫時單元TOP 調(diào)用過程的活動記錄前往地址TOPSP4) 過程前往時,應(yīng)執(zhí)行以下指令:TOP:=SP-1 (恢復(fù)調(diào)用前TOP)SP:=0SP (恢復(fù)調(diào)用前SP)X:=2TOP (把前往地址取到X中)UJ 0X (按X前往)參數(shù)個數(shù)前往地址方式單元內(nèi)情向量部分變量老SP暫時單元調(diào)用過程的活動記錄TOPSPSPTOP8.5 嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的
15、實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往8.5 嵌套過程言語的棧式實現(xiàn)假定言語不僅允許過程的遞歸調(diào)用(和可變數(shù)組),而且允許過程定義的嵌套,如PASCAL,PL言語。PASCALPASCAL程序本身可以看成是一個操作系統(tǒng)所調(diào)用的過程,過程可以嵌套和遞歸。一個PASCAL過程:過程頭;闡明段由一系列的闡明語句組成;begin執(zhí)行體由一系列的執(zhí)行語句組成;end8.5 嵌套過程言語的棧式實現(xiàn)作用域:一個名字能被運用的區(qū)域范圍稱作這個名字
16、的作用域。允許同一個標(biāo)識符在不同的過程中代表不同的名字。名字作用域規(guī)那么-最近嵌套原那么一個在子程序B1中闡明的名字X只在B1中有效部分于B1;假設(shè)B2是B1的一個內(nèi)層子程序且B2中對標(biāo)識符X沒有新的闡明,那么原來的名字X在B2中依然有效。假設(shè)B2對X重新作了闡明,那么,B2對X的任何援用都是指重新闡明過的這個X。program main var A, B : real; procedure P1 var B:boolean; begin end procedure P2 var A:integer; begin endbegin endA(real)B(real)B(bool)A(integ
17、r)嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往8.5.1 非部分名字的訪問的實現(xiàn) 主程序的層次為0;在i層中定義的過程,其層次為i+1;(層數(shù), 偏移量)過程運轉(zhuǎn)時,必需知道其一切外層過程的當(dāng)前活動記錄的起始地址。嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往圖9.15 程序program P;var a, x : integer;procedure Q(b: integer);var i: integer;procedure
18、R(u: integer; var v: integer);var c, d: integer;begin if u=1 then R(u+1, v).v:=(a+c)*(b-d);.end Rbegin.R(1,x);.end Qprocedure S;var c, i:integer;begina:=1;Q(c);.end Sbegina:=0;S;.end. P主程序P 過程 S 過程 Q 過程 R 過程 R一、靜態(tài)鏈和活動記錄 靜態(tài)鏈:指向本過程的直接外層過程的活動記錄的起始地址,也稱存取鏈。動態(tài)鏈:指向本過程的調(diào)用過程的活動記錄的起始地址,也稱控制鏈。參數(shù)個數(shù)前往地址方式單元暫時單元
19、內(nèi)情向量部分變量SP012動態(tài)鏈(老SP)TOP 靜態(tài)鏈00前往地址102a3x4SP TOP主程序P00前往地址102a3x405前往地址6070(形參個數(shù))8c9i10SP TOP動態(tài)鏈靜態(tài)鏈主程序P過程 S?第N層過程調(diào)用第 N+1層過程,如何確定被調(diào)用過程(第 N+1層)過程的靜態(tài)鏈?A:調(diào)用過程(第N層過程)的最新活動記錄的起始地址.00前往地址102a3x405前往地址6070(形參個數(shù))8c9i10SP TOP動態(tài)鏈靜態(tài)鏈主程序P 過程 S 過程 Q511前往地址120131(形參個數(shù))14b(形參)15i16?第N層過程調(diào)用第 N層過程,如何確定被調(diào)用過程(第 N層)過程的靜態(tài)
20、鏈?A:調(diào)用過程(第N層過程)的靜態(tài)鏈的值。00前往地址102a3x405前往地址6070(形參個數(shù))8c9i10動態(tài)鏈靜態(tài)鏈主程序P 過程 S 過程 Q 過程 R511前往地址120131(形參個數(shù))14b(形參)15i161117前往地址1811192(形參個數(shù))20u(形參)21v(形參)22c23d24SP TOP00前往地址102a3x405前往地址6070(形參個數(shù))8c9i10動態(tài)鏈靜態(tài)鏈主程序P 過程 S 過程 Q 過程 R 過程 R511前往地址120131(形參個數(shù))14b(形參)15i161117前往地址1811192(形參個數(shù))20u(形參)21v(形參)22c23d2
21、41725前往地址2611272(形參個數(shù))28u(形參)29v(形參)30c31d32TOPSP 00前往地址102a3x405前往地址6070(形參個數(shù))8c9i10動態(tài)鏈靜態(tài)鏈主程序P 過程 S 過程 Q 過程 R 過程 Q511前往地址120131(形參個數(shù))14b(形參)15i161117前往地址1811192(形參個數(shù))20u(形參)21v(形參)22c23d24TOPSP 1725前往地址260271(形參個數(shù))28b(形參)29i30?第N層過程調(diào)用第 N-x層過程,如何確定被調(diào)用過程(第 N-x層)過程的靜態(tài)鏈?A:沿著調(diào)用過程(第N層過程)的靜態(tài)鏈的向前走x步到達的活動記錄
22、的靜態(tài)鏈的值。嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往二、嵌套層次顯示表display當(dāng)進入一個過程后,在建立其活動記錄區(qū)的同時建立一張嵌套層次顯示表diaplay,把diaplay表作為活動記錄的一部分。令過程R的外層為Q,Q的外層為主程序為P,那么過程R運轉(zhuǎn)時的DISPLAY表內(nèi)容為:問題:當(dāng)過程P1調(diào)用過程P2而進入P2后,P2應(yīng)如何建立起本人的display表?P0P1P2P0P2P1P0P1P2問題:當(dāng)過程P1調(diào)用過程P2而進入P2后,P2應(yīng)如何建立起本人的display表?P0P1P2l2: P
23、1的最新活動記錄的起始地址P0的最新活動記錄的起始地址P1的display表P0的最新活動記錄的起始地址l2: P2的最新活動記錄的起始地址P2的display表從P1的display表中自底而上地取過l2個單元l2為P2的層數(shù)再添上進入P2后新建立的SP值就構(gòu)成了P2的display表。問題:當(dāng)過程P1調(diào)用過程P2而進入P2后,P2應(yīng)如何建立起本人的display表?P0P2P1l2-1: P1的最新活動記錄的起始地址P0的最新活動記錄的起始地址P1的display表P0的最新活動記錄的起始地址P1的最新活動記錄的起始地址P2的display表從P1的display表中自底而上地取過l2個單
24、元l2為P2的層數(shù)再添上進入P2后新建立的SP值就構(gòu)成了P2的display表。l2: P2的最新活動記錄的起始地址問題:當(dāng)過程P1調(diào)用過程P2而進入P2后,P2應(yīng)如何建立起本人的display表?P0P1P2P1的最新活動記錄的起始地址P0的最新活動記錄的起始地址P1的display表P0的最新活動記錄的起始地址P2的display表從P1的display表中自底而上地取過l2個單元l2為P2的層數(shù)再添上進入P2后新建立的SP值就構(gòu)成了P2的display表。l2: P2的最新活動記錄的起始地址l2: P2的最新活動記錄的起始地址問題:當(dāng)過程P1調(diào)用過程P2而進入P2后,P2應(yīng)如何建立起本人
25、的display表?答案:從P1的display表中自底而上地取過l2個單元l2為P2的層數(shù)再添上進入P2后新建立的SP值就構(gòu)成了P2的display表。把P1的display表地址作為銜接數(shù)據(jù)之一傳送給P2就可以建立P2的display表。P0P1P2P0P2P1P0P1P2diaplay表在活動記錄中的相對地址d在編譯時能完全確定。假定在現(xiàn)行過程中援用了某層過程(令其層次為k)的X變量,那么,可用下面兩條指令獲得X的地址: LD R1 (d+k)SP LD R2 dxR1嵌套過程言語活動記錄參數(shù)個數(shù)前往地址方式單元暫時單元內(nèi)情向量部分變量SP 012老SPTOP Display 表全局Di
26、aplay3d圖9.15 程序program P;var a, x : integer;procedure Q(b: integer);var i: integer;procedure R(u: integer; var v: integer);var c, d: integer;begin if u=1 then R(u+1, v).v:=(a+c)*(b-d);.end Rbegin.R(1,x);.end Qprocedure S;var c, i:integer;begina:=1;Q(c);.end Sbegina:=0;S;.end. P主程序P 過程 S 過程 Q 過程 R 過程
27、 R00前往地址10(display)2a3x405前往地址62(全局display)70(形參個數(shù))809510主程序過程 Sc11i12TOPSP 動態(tài)鏈00前往地址10(display)2a3x405前往地址62(全局display)70(形參個數(shù))809510主程序P過程 S 過程 Qc11i12動態(tài)鏈513前往地址149(全局display)151(形參個數(shù))16b(形參)170181319i20TOPSP 00前往地址10(display)2a3x405前往地址62(全局display)70(形參個數(shù))809510主程序P過程 S 過程 Q 過程 Rc11i12動態(tài)鏈513前往地址
28、149(全局display)151(形參個數(shù))16b(形參)170181319i201321前往地址2218(全局display)232(形參個數(shù))24u(形參)25v(形參)2602713282129c30d31TOPSP 00前往地址10(display)2a3x405前往地址62(全局display)70(形參個數(shù))809510主程序P 過程 S 過程 Q 過程 R 過程 Rc11i12動態(tài)鏈513前往地址149(全局display)151(形參個數(shù))16b(形參)170181319i201321前往地址2218(全局display)232(形參個數(shù))24u(形參)25v(形參)2602
29、713282129c30d31TOPSP 2132前往地址3327(全局display)342(形參個數(shù))35u(形參)36v(形參)3703813393240c41d42嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往參數(shù)個數(shù)前往地址方式單元暫時單元內(nèi)情向量部分變量老SPDisplay 表全局Diaplay1. 每個par Ti(i=1,2,n)可直接翻譯成如下指令:(i+4)TOP:= Ti (傳值) (i+4)TOP:=addr(Ti ) (傳地址)過程調(diào)用、過程進入、過程前往TOPSP 調(diào)用過程的活動記錄方
30、式單元參數(shù)個數(shù)前往地址方式單元暫時單元內(nèi)情向量部分變量老SPDisplay 表全局Diaplay2. call P,n 被翻譯成:1TOP:=SP (維護現(xiàn)行SP)3TOP:=SP+d (傳送現(xiàn)行display地址)4TOP:=n (傳送參數(shù)個數(shù))JSR (轉(zhuǎn)子指令)過程調(diào)用、過程進入、過程前往TOPSP 調(diào)用過程的活動記錄老SP全局Diaplay參數(shù)個數(shù)3. 轉(zhuǎn)進過程P后,首先定義新的SP和TOP,保管前往地址。4. 根據(jù)全局display建立現(xiàn)行過程的display:從全局display表中自底向上地取l個單元,在添上進入P后新建立的SP值就構(gòu)成了P的display。參數(shù)個數(shù)前往地址方式單
31、元暫時單元內(nèi)情向量部分變量老SPDisplay 表全局DiaplayTOPSP 調(diào)用過程的活動記錄前往地址Display 表5. 過程前往時,執(zhí)行下述指令: TOP:=SP-1SP:=0SPX:=2TOPUJ 0X參數(shù)個數(shù)前往地址方式單元暫時單元內(nèi)情向量部分變量老SPDisplay 表全局DiaplayTOPSP 調(diào)用過程的活動記錄TOPSP 嵌套過程言語的棧式實現(xiàn)PASCAL非部分名字的訪問的實現(xiàn)靜態(tài)鏈和活動記錄嵌套層次顯示表display過程調(diào)用、過程進入、過程前往三、上面兩種方法的折中PL編譯程序建立一個總的運轉(zhuǎn)時的diaplay表(而不是每個過程的活動記錄中都有一個),它記錄正被調(diào)用執(zhí)
32、行的過程及其一切外層過程的活動記錄的起始地址。經(jīng)過這個diaplay訪問數(shù)據(jù)。在各過程活動記錄之間保管一條靜態(tài)鏈SL,它主要用于由層次大的過程調(diào)用層次小的過程后前往時,恢復(fù)調(diào)用前的display內(nèi)容。(這時,調(diào)用前往后,執(zhí)行一條UDIS指令)PL中每個過程的活動記錄構(gòu)造: 1) 簡單部分變量 2) 銜接數(shù)據(jù)前往地址RA動態(tài)鏈DL,指向過程調(diào)用者的活動記錄起始地址靜態(tài)鏈SL, 指向過程的直接外層過程活動記錄起始地址靜態(tài)鏈指針SL方式單元部分變量數(shù)組SP 012前往地址RATOP 動態(tài)鏈指針DL3program P; var x,y: integer; . procedure P1; var i,j:integer; . procedure P11(a,b:integer); . begin . end; begin . call P11(i,j); . end; procedure P2; var s,t:int
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物質(zhì)儲備工作計劃
- 公開招聘專職人員報名登記表
- 2025至2030年中國尼龍脫水網(wǎng)數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國導(dǎo)航器材數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國家豬標(biāo)本數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國嬰兒玩具瓶裝數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國大蹺板門鈴開關(guān)數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國塑料刀架數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國吸塵器塑件數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國反應(yīng)色譜裝置數(shù)據(jù)監(jiān)測研究報告
- DB36T 1689-2022 排污單位自行監(jiān)測實驗室管理技術(shù)規(guī)范
- 跨學(xué)科實踐活動6 調(diào)查家用燃料的變遷與合理使用課件九年級化學(xué)上冊(人教版2024)
- 人教版道德與法治五年級下冊《第一單元 我們一家人》大單元整體教學(xué)設(shè)計2022課標(biāo)
- 醫(yī)囑處理錯誤應(yīng)急預(yù)案
- M701F4燃氣輪機交流
- 2024年高考真題-政治(福建卷) 含解析
- 大模型技術(shù)深度賦能保險行業(yè)白皮書2024
- (蘇少版)綜合實踐一年級下冊第四單元電子教案
- 《光伏電站運行與維護》試題及答案一
- DBJ∕T 15-19-2020 建筑防水工程技術(shù)規(guī)程
- 二十四式太極拳教案高一上學(xué)期體育與健康人教版
評論
0/150
提交評論