深入理解計算機系統 第三章 程式的機器級表示 2

2022-08-05 11:00:20 字數 829 閱讀 1250

迴圈

do-while迴圈

dobody-statement

while(test-expr);

這個迴圈的效果就是重複執行body-statement,對於test-expr求值,如果求值的結果為非零,就繼續迴圈。可以看到,body-statement至少會執行一次。

while迴圈

while(test-expr)

body-statement

與do-while的不同之處在於,在第一次執行body-statement之前,它會對test-expr求值,迴圈有可能就中止了。

for迴圈

for(init-expr;test-expr;update-expr)

body-statement

switch語句

switch(開關)語句可以根據乙個整數索引值進行多重分支(multiway branching)。

提供對過程的機器級支援,包括下面乙個或多個機制:

傳遞控制。

傳遞資料。

分配和釋放記憶體。

執行時棧,過程呼叫機制使用了棧資料結構提供的後進先出的記憶體管理原則。程式可以用棧來管理它的過程所需要的儲存空間,棧和程式暫存器存放著傳遞控制和資料、分配記憶體所需要的資訊。

轉移控制

資料傳送

棧上的區域性儲存,一般來說,過程通過減小棧指標在棧上分配空間。

暫存器中的區域性儲存空間,當乙個過程(呼叫者)呼叫另乙個過程(被呼叫者)時,被呼叫者不會覆蓋呼叫者稍後會使用的暫存器值。

遞迴過程

陣列分配和訪問

指標運算

巢狀的陣列

定長陣列

變長陣列

深入理解計算機系統 第三章

1.假設過程p 呼叫者 呼叫過程q 被呼叫者 則q的引數放在p的棧幀中。2.另外,當p呼叫q時,p中的返回位址被壓入棧中,形成p的棧幀的末尾。3.返回位址就是當程式從q返回時應該繼續執行的地方。程式暫存器組是唯一能夠被所有過程共享的資源。雖然在給定時刻只能有乙個過程是活動的,但是我們必須保證當乙個過...

深入理解計算機系統 第三章大略和第五章大略

這2章總結的很少,主要是覺得沒那麼重要。1.1 2個運算元的指令,第二個運算元通常是目的運算元 movb a b,move a to b,而add a b,b a,指令分為指令類,如mov類 movb,movw,movl,b指乙個位元組,w表示2個位元組,l表示4個位元組 movs類 擴充套件填符號...

深入理解計算機系統 第三版 第三章家庭作業答案

這章有的地方看第一遍的時候看的雲裡霧裡,看第二遍的時候才看明白。印象較深的是被呼叫者儲存暫存器,這部分內容看的得有3遍,沒看懂之前一直很迷,看懂之後只有兩個感覺 一是妙,二是簡單。這章內容,讓我知道了c語言的 是如何在機器上執行的,在此過程中,我突然很好奇編譯器如何把c原始碼翻譯為組合語言,以及如何...