《程式是怎樣跑起來的》筆記

2021-08-15 06:51:53 字數 2693 閱讀 4469

章節摘要

備註總結

對程式設計師來說 cpu 是什麼

cpu 內部由暫存器,控制器,運算器和時鐘四個部分組成

有些 cpu時鐘部分在外部

程式啟動後,控制器從記憶體讀取指令和資料

程式儲存在記憶體中,cpu來執行

對程式設計師來說 cpu 是什麼

cpu是暫存器的集合體

程式是把cpu作為暫存器來描述的

機器語言要靠操作暫存器實現功能

對程式設計師來說 cpu 是什麼

機器語言指令的主要型別和功能

資料轉送指令

運算指令

跳轉指令

call/return指令

無論多複雜的程式,最終都要靠

這幾類簡單的指令來實現效果

資料是用二進位制表示的

所有位都是1的二進位制數,十進位制就是 -1

知識點資料是用二進位制表示的

位元組是基本單位,位是最小單位

八位乙個位元組

資料是用二進位制表示的

將二進位制數的值取反後加1的結果,和原來的值相加等於0

1 =  0000 0001

-1 = 1111 1111   二者相加為0

補數 = 取反加1

計算機進行小數運算時出錯的原因

二進位制0.1表示十進位制的0.5

小數點後一位的位權是 2-1 = 0.5

計算機進行小數運算時出錯的原因

浮點數是用符號,尾數,基數,指數四部分表示小數的

double 雙精度, float 單精度

熟練使用有稜有角的記憶體

記憶體的物理機制很簡單:電源,位址訊號,資料訊號,控制訊號

熟練使用有稜有角的記憶體

資料型別表示儲存的是何種型別的資料

存記憶體角度:資料型別就是占用的記憶體大小

相同的記憶體資料 eg 00110011

具體表示的資料不一定相同

熟練使用有稜有角的記憶體

陣列是使用記憶體的基本

因為陣列和記憶體的物理結構是一樣的

棧,佇列均是通過陣列實現

熟練使用有稜有角的記憶體

鍊錶可以方便追加和刪除元素

熟練使用有稜有角的記憶體

二叉查詢樹是由鍊錶構造發展而來的

乙個節點有兩個指向即可

記憶體和磁碟的親密關係

記憶體:利用電流實現儲存

磁碟:利用磁效應實現儲存

記憶體高速**,磁碟低速廉價

磁碟分為兩類,

一類是硬碟,一類是軟盤。

記憶體和磁碟的親密關係

磁碟快取時指把磁碟中讀取的資料儲存到記憶體空間中的方式

實際上占用的是記憶體空間

記憶體和磁碟的親密關係

虛擬記憶體是把此磁碟的一部分當做記憶體使用

實際上是磁碟

記憶體和磁碟的親密關係

dll(dynamic link library)檔案實現函式共有

可以提高記憶體效率

記憶體和磁碟的親密關係

windows乙個扇區是512位元組,簇是扇區的整數倍

不同的檔案不能儲存在同一簇中

檔案不管多小,都會占用一簇的空間

親自嘗試壓縮資料

ele(run length encoding) 資料*重複次數 的壓縮方法

缺點是不適於重複度小的資料型別,例如文字

親自嘗試壓縮資料

哈弗曼演算法能夠大幅提公升壓縮比率

程式是在何種環境中執行的

執行環境 = 作業系統 + 硬體

程式是在何種環境中執行的

機器語言的程式成為本地**

程式是在何種環境中執行的

windows克服了除 cpu 之外的硬體差異

1 windows 可以統一管理輸入,輸出,內從等

2 windows 是有對應特定 cpu 要求的

程式是在何種環境中執行的

應用程式向作業系統傳遞指令的途徑成為api

從原始檔到可執行檔案

把源**轉換為本地**的程式稱作編譯器

從原始檔到可執行檔案

編譯器不僅和程式語言有關,和 cpu 的型別也是相關的

作業系統和應用的關係

具有載入和執行功能的監控程式是作業系統的原型

作業系統和應用的關係

最初的作業系統 = 監控程式 + 基本的輸入輸出程式

作業系統和應用的關係

開發時類似 printf() 這些函式的執行結果,都不是

面向硬體而是面向作業系統的.

應用程式通過 os 間接地控制硬體

作業系統和應用的關係

檔案是作業系統對磁碟媒介的抽象化

作業系統和應用的關係

windows 通過時鐘分割技術來實現多工

通過組合語言了解程式的實際構成

彙編的語法結構是 操作碼 + 運算元

通過組合語言了解程式的實際構成

在組合語言中,函式名表示的是函式所在的記憶體位址

通過組合語言了解程式的實際構成

函式的引數是通過棧來傳遞,返回值是通過暫存器來返回的

區域性變數也會利用空閒的暫存器

硬體控制方法

以埠為橋梁來實現 cpu 和外圍裝置之間的資料傳遞

硬體控制方法

dma(direct memory access),是指在不通過cpu的情況下

外圍裝置直接和主記憶體進行資料傳送

硬體控制方法

i/o埠號 irq  dma 通道可以說是識別外圍裝置的3組合

讓計算機"思考"

讀《程式是怎樣跑起來的》

我們開始學習程式設計最先接觸的是vb,因為vb比較容易看到成果,簡單的 就可以實現好玩的功能。我們有邏輯,並用這種高階語言表達出來時,計算機是怎樣處理的呢,計算機內部是如何儲存傳遞資料的,讀了 程式是怎樣跑起來的 感覺以前寫的 更生動了,可以在你眼前跑來跑去了。本文先來介紹cpu是什麼。cpu 處理...

《程式是怎樣跑起來的》讀書筆記

一本比較適合對計算機零認識的人看的科普書,因為很簡單,我們快速讀完,並完成了這篇測試筆記,該筆記提取了我們認為值得了解的要點。目錄第 6 章 親自嘗試壓縮資料 第 7 章 程式是在何種環境中執行的 第 8 章 從原始檔到可執行檔案 1 通過 dll 檔案實現函式共用 2 通過呼叫 stdcall 來...

計算機是怎樣跑起來的

第一章 計算機的三大原則 一 熱身問題 1.硬體和軟體的區別?答 硬體是看得見摸得著的裝置,比如計算機的顯示器,鍵盤等等 軟體是計算機所執行的程式,即指令和資料 原則上軟體是看不到也摸不著的。2.儲存字串 中國 需要幾個位元組?答 在gbk字元編碼下,需要4個位元組。3.什麼是編碼?答 通常將為了便...