【读书笔记】程序是怎么跑起来的 矢泽久雄
【CPU】
1.CPU解釋和運行最終轉換成機器語言的程序內容
2.CPU內部由 寄存器、控制器、運算器和時鐘 四個部分組成
【內存】
1.內存一般指的是主存
2.主存主要負責存儲指令和數據
3.主存中,每一個字節都有一個地址編號
4.主存中存儲的指令和數據會隨著計算機的關機自動清除
【寄存器】
1.程序是把寄存器作為對象來描述的
【程序計數器】
1.一種CPU寄存器
2.決定程序的流程
3.通過設定,實現跳轉指令;單純的跳轉指令,無法實現函數調用(函數調用使用call和return指令)
【匯編】
1.匯編 :匯編語言 -> 機器語言
【補數】
1.符號位是0表示正數,是1表示負數
2.補數就是用正數表示負數
3.為了獲得補數,需要將二進制各數位數值全部取反后加一
4.例如,用8位二進制表示-1時,只需求得1得補數,即00000001的補數即可,即11111111;這樣,相加后就得到0
5. 3-5用8位二進制表示,就是3+(-5),是00000011,加上00000101的補數,即11111011,結果是11111110,由符號位可知這是負數,利用負負得正的性質,求其補數為00000010,就是2,因此,11111110表示-2
【移位運算】
1.邏輯右移 :移位后在最高位補0
2.算術右移 :移位后在最高位填充移位前符號位的值(0/1)
3.左移時,只要在空處的低位補0即可
【符號擴充】
1.在保持值不變的前提下,轉為其他位數的二進制數
2.不管是正數還是用補數表示的負數,只需要用符號位的值填充高位即可
【小數】
1.用二進制表示小數
2.計算機進行小數運算時出錯的原因就是,有一些十進制小數無法表示成二進制
3.如何避免運算出錯?
–小數轉換成整數
–BCD
【浮點數】
1.32位float和64位double都用浮點數表示小數
2.浮點數用符號、尾數、指數三個部分(基數為2)
3.尾數部分用的是“將小數點前面的值固定為1的正則表達式“,即將二進制表示的小數進行邏輯移位,使整數部分第1位變成1,且只保留小數點后的
4.指數部分用的是“EXCESS系統表現“
【隊列】
1.隊列一般是以環狀緩沖區的方式來實現的
【內存與磁盤】
1.計算機中主要的存儲部件是內存和磁盤
2.磁盤中存儲的程序,必須加載在內存后才能運行
3.磁盤緩存 :指的是從磁盤中讀出的數據存儲到內存空間,接下來讀取同一數據,就不需要通過實際的磁盤,改善磁盤數據的訪問速度;Web瀏覽器把低速的網絡數據保存到相對高速的磁盤中
4.虛擬內存 :把磁盤的一部分作為假想的內存使用,內存不足時可以運行程序;虛擬內存有分段式和分頁式,windows采用分頁式
【節約內存的編程方法】
1.通過DLL文件實現函數共有 :程序運行時可以動態加載Library(函數和數據的集合)的文件;多個應用可以共有同一個DLL文件,節約內存
2.通過調用_stdcall來減小程序文件的大小
【RLE算法】
1.Run Length Encoding,數據*重復次數
【運行環境】
1.運行環境=操作系統+硬件
2.windows克服了cpu以外的硬件差異
3.API :應用程序向操作系統傳遞指令
【中斷請求】
1.IRQ
【DMA】
1.不通過CPU,外圍設備直接和主內存進行數據傳送,短時間內傳送大量數據
總結
以上是生活随笔為你收集整理的【读书笔记】程序是怎么跑起来的 矢泽久雄的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯C++ AB组辅导课 第一讲 递归
- 下一篇: 王道计算机考研 数据结构 (查找-下)