計算機系統原理(二)Hello World 程序運行原理圖解
Hello World 執行三階段 在 Linux 下執行 ./hello,經歷: Shell 掃描輸入:鍵盤字符經寄存器存入主存。 加載可執行文件:代碼與
計算機系統原理(三)存儲層次結構與操作系統核心抽象
高速緩存的重要性 CPU 與主存速度差距大,高速緩存 (SRAM) 置於 CPU 內部,作為主存 (DRAM) 緩存,大幅降低訪問延遲。位置圖: 存儲設備金字
計算機系統原理(四)並發與並行、抽象層次剖析
並發 vs 並行 並發:系統同時具有多個活動;並行:利用並發提升速度。並發是模式,並行是手段。 線程級並發 多線程在單/多核、超線程(N 物理核模擬 2N 邏輯
計算機系統原理(五)信息存儲、十六進制與強制類型轉換
引言 信息 = 位 + 上下文。計算機用位表示一切,三大數值類型:無符號、補碼、浮點。固定位寬導致溢出。 信息存儲與字節寻址 最小可寻址單位為字節 (8 位)。
計算機系統原理(六)布爾代數與 C 語言位運算實戰
布爾代數位運算 四基本運算:非 (~)、與 (&)、或 (|)、異或 (^)。單位真值表見圖: 擴展到 N 位:逐位獨立運算。 C 語言位運算與掩碼技巧 C
計算機系統原理(七)整數表示方式精解:無符號編碼與補碼編碼
C 語言整數類型與範圍 32/64 位系統下各整數類型範圍對比,C 標準最小範圍要求: 無符號編碼 w 位無符號數:B2U_w(x) = Σ x_i·2^i
計算機系統原理(八)C語言有符號/無符號轉換、整數擴展與截斷
引言 承接上章整數編碼,本章討論位寬變換:擴展與截斷,並結合 C 語言隱式轉換陷阱。 C 語言有符號與無符號隱式轉換 有符號用補碼,無符號用無符號編碼。隱式轉換
計算機系統原理(九)二進制整數加法與減法運算詳解
引言 有限位寬導致溢出:兩正數相加得負數。C/Java 均表現一致。例:0x7FFFFFFF + 0x7FFFFFFF = -2。 無符號加法與逆元 無符號加法
計算機系統原理(十)二進制整數乘法與除法運算原理
引言 加法是運算基礎,減法、乘法可歸約為加法,唯除法不可。理解運算抽象特性有助於跨平台程序編寫。 無符號乘法 兩個 w 位無符號數相乘,結果可能需 2w 位。實
計算機系統原理(十一)二進制浮點數與 IEEE 754 標準深度解析
引言 整數無法表示小數及極大極小值,浮點數應運而生。早期廠商標準不一,1985 年 IEEE 754 統一了浮點表示,如同秦始皇統一度量衡。 二進制小數表示 二
計算機系統原理(十二)浮點數捨入規則、Java 實例驗證與浮點運算特性
前言 上一章介紹了 IEEE 754 標準,本章聚焦浮點運算中的捨入問題及運算特性。許多十進制小數(如 0.3)無法用二進制精確表示,必須捨入。 浮點數捨入的四
計算機系統原理(十三)匯編語言入門:為何學習與初體驗
引言 本系列進入第 3 部分——匯編語言。雖然不如高級語言熟悉,但它是編譯器輸出的真實面貌,理解它能揭開程序運行的迷霧。 為何要學習匯編語言 高級語言封裝了底層
計算機系統原理(十四)數據格式、訪問信息與操作數指示符詳解
引言 本文內容可視為匯編語言的基石。因為匯編指令大多操作的是我們在高級語言開發中不可見的底層對象,理解這些對象是掌握匯編的關鍵。 匯編層面的 CPU 對象 在匯
計算機系統原理(十五)深入解析數據傳送(複製)指令
引言 上一章我們已經奠定了匯編語言的基礎,涵蓋了數據格式、寄存器以及操作數的標識方式。接下來,我們將正式踏入匯編指令的世界。這些指令雖然單看都很簡單,但組合起來
計算機系統原理:算術邏輯指令 leal/addl/sall/andl/imull 實戰解析
指令分類表 leal 神奇用法:位址計算而非存取 movl 4(%edx,%edx,4), %eax:存取記憶體位址 5x+4 取值 leal 4(%ed
計算機系統原理:特殊算術指令 imull/mull/cltd/idivl/divl 64 位運算詳解
指令概覽 imull/mull:單運算元 64 位乘法 (有號/無號) cltd:%eax 符號擴展到 %edx idivl/divl:64 位除法,商存
計算機體系結構:進制轉換完整指南 (R進制↔十進制、二進制↔十六進制/八進制)
常用進制 十進制 (生活)、七進制 (星期)、十二/二十四進制 (時間)、二進制 (電腦核心)。 1. R 進制 → 十進制 口訣:按權展開,依次求和 範例:
計算機體系結構:碼制系統原碼反碼補碼移碼 BCD 完整比較
五大編碼方式 原碼、反碼、補碼、移碼、BCD 碼。電腦讀取、傳輸、運算、顯示皆依賴碼制。 原碼 表示:最高位符號位 (0 正/1 負),其餘為絕對值 範例: