讀書筆記 《csapp》第三章 第六七節

2021-09-01 06:23:56 字數 896 閱讀 9527

第七節:過程

包括描述表達迴圈和switch 語句的方法

cpu 維護著一組單個位的條件碼暫存器,他們描述了最近的算數或邏輯操作的屬性。可以檢測這些暫存器來執行條件分支指令。

cf (

unsigned

) t <

(unsigned

) azf (t==0)

sf (t<0)

of (a<

0== b<0)

&&(t<

0!= a<

0)

可以根據條件碼的某種組合,獎乙個位元組設定為0或這1

可以條件跳轉到程式的某個其他部分

可以有條件地傳送資料

區分有符號和無符號:

大多數情況下,機器**對於有符號和無符號兩種情況使用一樣的指令,這是因為許多算數運算子對無符號和補碼算數都有一樣的位級行為

跳轉指令會導致執行切換到程式中的乙個全新位置。

jmp (感覺和goto:差不多)

過程是軟體中一種很重要的抽象。它提供了一種封裝**的方式,用一組指定的引數和乙個可選的返回值實現某種功能。然後,可以在程式中的不同地方呼叫這個函式。。。

傳遞資料:p必須能夠向q提供乙個或多個引數,q必須能夠向p返回乙個值

分配和釋放記憶體:在開始時,q可能需要為區域性變數分配空間,而在返回前,有必須釋放這些儲存空間。

有些時候,區域性資料必須放在記憶體中

遞迴:每個遞迴呼叫在棧中都有他自己的私有空間,因此多個未完成呼叫的區域性變數不會相互影響。此外,棧的原則很自然地就提供了適當的策略,當過程被呼叫時,分配區域性儲存,當返回時釋放儲存。

第三章讀書筆記

程序管理 3.1程序 程序就是處於執行期的程式 目標碼存放在某種儲存介質上 但程序並不僅僅侷限於一段可執行程式 執行執行緒,執行緒,是程序活動的物件。兩種虛擬機制 虛擬處理器和虛擬記憶體。最終,程式通過exit 系統呼叫退出執行。3.2程序描述及任務結構 核心把程序的列表存放在叫做任務佇列的雙向迴圈...

第三章讀書筆記

本章是講了git的使用入門,為學習本書的人展示了git的基本用法。儘管git並不是學習android移植和linux核心 驅動開發必須掌握的技術。但對於深入研究這些底層技術的人來說,git將成為學習過程中必不可少的工具。git是什麼,git就是乙個開源的分布式版本控制系統,用以有效 高速的處理從很小...

UNP讀書筆記第三章

網路位元組序和主機位元組序大小端不一樣。linux提供了4個轉換函式 include uint16 t htons uint16 t value uint32 t htonl uint 32t value uint16 t ntohs uin16 t value uint32 t ntohl uin...