深入理解計算機系統——程式結構和執行
前言
第一部分 程式結構和執行
正文
1.資訊儲存
虛擬記憶體:是一個非常大的位元組陣列
記憶體的地址:記憶體的每個位元組都由一個唯一的數字來標識
虛擬地址空間:所有可能地址的集合
2.十六進位制的表示法
插播一下 進位制的轉化,(數學渣)會進位制的 直接跳走吧
做的作業:紅紅火火 恍恍惚惚
3.字資料大小
- 每臺計算機都有一個字長,指明指標資料的標稱大小。(俗話說的,32位電腦,64位電腦)
- 字長決定虛擬地址空間的最大大小
- int32_t為4個位元組,int64_t 為8個位元組
- 使用確定大小的整數型別是程式設計師準確控制資料表示的最佳途徑
4.定址和位元組順序
1.這個物件的地址是什麼?
2.記憶體中如何排列這些位元組
反彙編器是一種確定可執行程式檔案所表示的指令序列的工具
5.表示字串
基本編碼,成為Unicode的“統一字符集”
相關推薦
深入理解計算機系統——程式結構和執行
前言 第一部分 程式結構和執行 正文 1.資訊儲存 虛擬記憶體:是一個非常大的位元組陣列 記憶體的地址:記憶體的每個位元組都由一個唯一的數字來標識 虛擬地址空間:所有可能地址的集合 2.十六進位制的表示法 插播一下 進位制的轉化,(數學渣)會進位制
深入理解計算機系統----程式的機器級表示
轉載地址 https://www.jianshu.com/p/c60a9c2131c3 目 錄 精通細節是理解更深和更基本概念的先決條件,這一章節首先講解了C程式碼、彙編程式碼與機器程式碼的關係,再次重申了彙編的承上啟下的重要作用。接著從IA32的細節一步步講起,如何儲存資料、如
深入理解計算機系統 第三章大略和第五章大略
$0 一個 編譯 存儲器 系統 32位 做了 ++i 擴展 這2章總結的很少,主要是覺得沒那麽重要。 1.2個操作數的指令,第二個操作數通常是目的操作數:movb a b,move a to b,而add a b,b+=a,指令分為指令類,如mov類:movb,movw,m
《深入理解計算機系統》關於csapp.h和csapp.c的編譯問題(轉)
系統 文件中 class net 工作 inux 而且 pan div 編譯步驟如下: 1.我的當前工作目錄為/home/sxh2/clinux,目錄下有3個文件inet_aton.c csapp.h csapp.c。 2.編譯csapp.c文件,命令為gcc -c csa
深入理解計算機系統(序章)------談程序員為什麽要懂底層計算機結構
人類 是你 驅動 計算機世界 執行過程 鍵盤 二進制 java虛擬機 調優 萬丈高樓平地起,計算機系統就像程序員金字塔的地基。理解了計算機系統的構造原理,在寫程序的道路上才能越走越遠。道理LZ很早就懂了,可是一直沒下定決心好好鉆研,或許是覺得日常工作中根本用不到這些,又
3.2《深入理解計算機系統》筆記(二)內存和高速緩存的原理【插圖】
img sram 本質 text ddr rate too 是我 很大的 《深入計算機系統》筆記(一)主要是講解程序的構成、執行和控制。接下來就是運行了。我跳過了“處理器體系結構”和“優化程序性能”,這兩章的筆記繼續往後延遲! 《深入計算機系統》的一個很大的用處
深入理解計算機系統(2.4)------整數的表示(無符號編碼和補碼編碼)
class 映射 們的 c語言 正數 裏的 小例子 負數 類型 上一篇博客我們主要介紹了布爾代數和C語言當中的幾個運算符。那麽這一篇博客我們主要介紹在計算機中整數是如何表示的,諸如我們在編碼過程中遇到的對數據類型進行強制轉換可能會得到意想不到的結果在這篇博客裏你會得到解
深入理解計算機系統(3.1)------匯編語言和機器語言
找到 生產 有著 shu 符號 ces pc機 高效率 機器語言 《深入理解計算機系統》第三章——程序的機器級表示。作者首先講解了匯編代碼和機器代碼的關系,闡述了匯編承上啟下的作用;接著從機器語言IA32著手,分別講述了如何存儲數據、如何訪問數據
深入理解計算機系統(3.8)------數組分配和訪問
2個 說明 add 如果 c++編譯 類型 操作 http 程序 上一篇博客我們講解了匯編語言中過程(函數)的調用實現。理解數據如何在調用者和被調用者之間傳遞,以及在被調用者當中局部變量內存的分配以及釋放是最重要的。那麽這篇博客我們將講解數組的分配和訪問。 1、
深入理解計算機系統(二)--信息的表示和處理
科學 單獨 深入理解計算機系統 輔助 指針 值範圍 二進制表示 程序 不同的 一、信息的表示現代計算機中的信息都是使用二進制的數字進行表示,通常來說,單個的位不是非常有用,但是當把位組合在一起,再加上某種解釋,就能夠表示任何有限集合的元素。三種重要的數字表示:1、無符號編碼
信息的處理和表示思維導圖 -讀《深入理解計算機系統》
信息 nbsp 運算 思維導圖 計算 整數 深入理解計算機系統 布爾 image 總覽: 信息的存儲: 概念: 十六進制表示法: 字數據大小: 尋址和字節順序: 布爾代數: 浮點數: 整數表示: 整數運算
深入理解計算機系統 第三章 程式的機器級表示 part1
如題所示,這一章講解了程式在機器中是怎樣表示的,主要講組合語言與機器語言。 學習什麼,為什麼學,以及學了之後有什麼用 我們不用學習如何建立機器級的程式碼,但是我們要能夠閱讀和理解機器級的程式碼。 雖然現代的優化編譯器能夠很有效的將高階程式碼翻譯成機器級的程式碼,但是,為了
深入理解計算機系統 第二章 資訊的表示和處理
欣哥劃的重點: 第二章比較難,建議至少掌握下面幾個知識點: 1. 位元組順序 : 大端和小端 2. 執行 圖2-24, 圖2-25程式 show-bytes.c 觀察結果,看看有什麼問題 3. 理解布林運算,位運算 4. 理解無符號數和有符號數, 給一個數,能計算出補碼 5. 理解浮點數的表
深入理解計算機系統----資訊的表示和處理
1、最小的可定址的記憶體單位是位元組,記憶體的每個位元組都由一個唯一的數字來標識,稱為地址,所有可能地址的集合稱為虛擬地址空間; 2、十六進位制數字0代表4個二進位制0;二進位制表示中,x=2的n次方就是1後面跟n個0;當n表示成i+4j的形式,可以把x寫成開頭的十六進位制數為1(i=0
深入理解計算機系統 第三章 程式的機器級表示 part2
這周由於時間和精力有限,只讀一小節:3.4.4 壓入和彈出棧資料 棧是一種特殊的資料結構,遵循“後進先出”的原則,可以用陣列實現,總是從陣列的一端插入和刪除元素,這一端被稱為棧頂。 棧有兩個常用指令: push:把資料壓入棧中 pop:刪除資
深入理解計算機系統 第三章 程式的機器級表示 part3
這周看了劉老師提供的相關視訊,以及書中對應的章節“3.7 過程” 這一節分為執行時棧、轉移控制、資料傳送、棧上的區域性儲存、暫存器中的區域性儲存空間和遞迴過程這 6 個小節 其中前 3 小節看懂了一部分內容,後面兩個還沒來得及看,下週看完補上
深入理解計算機系統 第二章資訊的表示和儲存、
引言: 這一章我們研究在計算機上如何表示資料和其他型別資料的基本屬性,以及計算機對這些資料執行操作的屬性。在整數運算中,重點描述無符號數和數的補碼所表示的特性;而對於IEEE標準的浮點型資料,一是它是如何表示資料的,二是浮點運算的數學形式。 三種常見的資料型別:整數分為無符號數和有符號數。無
《深入理解計算機系統》筆記——資訊的表示和處理
資訊的儲存 十六進位制表示法 字 資料大小 定址和位元組順序 資料型別 字串的表示 程式碼的表示 資訊的儲存 資訊是客觀事物的反映,是經過處理加工後得出的資料。 資料是客觀事物的記錄。 計算機內所有的資訊均以二進位制的形式表示,
深入理解計算機系統 第六章 儲存器層次結構
為什麼要學習儲存器的層次結構? 如果我們理解了系統是如何將資料在儲存器層次結構中上上下下移動的,那麼我們就可以編寫自己的應用程式,使得它們的資料項儲存在層次結構較高的地方,在那裡 CPU 能更快地訪問到它們。 區域性性原理 計算機程式傾向於引用臨近於其他最近引用過的資料項
深入理解計算機系統——2.1.4定址和位元組順序
對於跨越多位元組的程式物件,我們必須建立兩個規則: 這個物件的地址是什麼?儲存器如何排列這些位元組? 在幾乎所有的機器上,多位元組物件被儲存為連續的位元組序列, 物件的地址為所使用的整個位元組中首地址(最小地址)。 例如:一個int 的變數X的地址為0x100, 那