64位彙編語言的程式設計藝術 The Art of 64-Bit Assembly: x86-64 Machine Organization and Programming
Randall Hyde 譯者 江紅//余青松//餘靖
- 出版商: 機械工業
- 出版日期: 2024-01-01
- 售價: $1,194
- 貴賓價: 9.5 折 $1,134
- 語言: 簡體中文
- 頁數: 724
- 裝訂: 平裝
- ISBN: 7111741269
- ISBN-13: 9787111741268
- 此書翻譯自: The Art of 64-Bit Assembly, Volume 1: X86-64 Machine Organization and Programming (Paperback)
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$580$493 -
$400$360 -
$648$616 -
$654$621 -
$720$648 -
$414$393 -
$648$616 -
$800$632 -
$454Python 密碼學編程, 2/e
-
$539$512 -
$1,079$1,025 -
$414$393 -
$449x64 匯編語言:從新手到 AVX 專家
-
$800$624 -
$774$735 -
$352嵌入式系統原理與應用 — 基於 Linux 和 ARM
-
$588$559 -
$403惡意代碼逆向分析基礎詳解
-
$594$564 -
$509庖丁解牛 Linux 操作系統分析
-
$539$512 -
$534$507 -
$680$530 -
$1,199$1,139 -
$768$730
相關主題
商品描述
本書源自於作者的經典書籍The Art of Assembly Language,從32位組合語言升級為64位組合語言,
基於Microsoft巨集組譯器(MASM)講解x86-64 CPU上組譯語言的程式設計藝術。
本書從電腦的組成結構開始介紹,包括電腦資料表示和運算,以及記憶體的存取和組織等。
之後詳細講解組合語言程式設計,涉及過程和算術運算的相關知識,
再透過低階控制結構過渡到高階主題,如表查找和位元操作。
此外,也探討了x87浮點單元、SIMD指令,以及MASM的巨集工具。
目錄大綱
目 錄
The Art of 64-Bit Assembly: x86-64 Machine Organization and Programming
譯者序
推薦序
前言
致謝
第一部分 計算機的組成結構
第1章 彙編語言的第一個程式 2
1.1 先決條件 2
1.2 在電腦上安裝MASM 3
1.3 在電腦上安裝文字編輯器 3
1.4 MASM程式的結構剖析 3
1.5 運行第一個MASM程式 4
1.6 運行第一個MASM和C 的混合程式 4
1.7 英特爾x86-64 CPU系列簡介 6
1.8 內存子系統 9
1.9 在MASM中宣告內存變數 10
1.9.1 將記憶體位址與變數關聯 11
1.9.2 將資料型態與變數關聯 12
1.10 在MASM中聲明(命名)常數 12
1.11 基本的機器指令 13
1.11.1 mov指令 13
1.11.2 指令操作數的型別檢查 14
1.11.3 add和sub指令 15
1.11.4 lea指令 15
1.11.5 call和ret指令以及MASM過程 16
1.12 呼叫C/C 過程 17
1.13 「Hello, world!」程序 18
1.14 在組合語言中傳回函數結果 19
1.15 自動化建置流程 24
1.16 微軟ABI註釋 25
1.16.1 變數大小 25
1.16.2 暫存器的用途 28
1.16.3 棧對齊 28
1.17 拓展閱讀資料 28
1.18 自測題 29
第2章 計算機資料表示與運算 31
2.1 數制系統 31
2.1.1 十進制數制系統的回顧 31
2.1.2 二進制數制系統 32
2.1.3 二進位約定 32
2.2 十六進位數制系統 33
2.3 關於數字與表示的註解 34
2.4 資料組織 36
2.4.1 位 36
2.4.2 半字節 36
2.4.3 位元組 37
2.4.4 字 38
2.4.5 雙字 39
2.4.6 四字和八字 39
2.5 位元的邏輯運算 39
2.5.1 邏輯與運算 40
2.5.2 邏輯或運算 40
2.5.3 邏輯異或運算 40
2.5.4 邏輯非運算 41
2.6 二進制數和位元串的邏輯運算 41
2.7 有符號數和無符號數 45
2.8 符號擴展與零擴展 49
2.9 符號縮減與飽和法 49
2.10 簡要回顧:控制轉移指令概述 50
2.10.1 jmp指令 50
2.10.2 條件跳轉指令 51
2.10.3 cmp指令與對應的條件跳轉 52
2.10.4 條件跳轉的同義詞 53
2.11 移位與循環移位 54
2.12 位元欄位和打包資料 57
2.13 IEEE浮點數格式 63
2.13.1 單精度格式 64
2.13.2 雙精度格式 65
2.13.3 擴充精度格式 65
2.13.4 規範化浮點值 65
2.13.5 非數值資料 66
2.13.6 MASM對浮點數值的支援 66
2.14 BCD表示法 67
2.15 字符 67
2.15.1 ASCII字元編碼 68
2.15.2 MASM對ASCII字元的支援 69
2.16 Unicode字元集 70
2.16.1 Unicode碼位 70
2.16.2 Unicode碼平面 70
2.16.3 Unicode編碼 71
2.17 MASM對Unicode的支援 72
2.18 拓展閱讀資料 72
2.19 自測題 72
第3章 記憶體的存取與組織 76
3.1 運行時的記憶體組織 76
3.1.1 「.code」段 77
3.1.2 「.data」段 77
3.1.3 「.const」段 78
3.1.4 「.data?」段 79
3.1.5 程序中聲明段的組織方式 79
3.1.6 記憶體存取與4KB記憶體管理單元頁 80
3.2 MASM如何為變數分配記憶體 81
3.3 標籤聲明 82
3.4 小端模式與大端模式的資料組織方式 82
3.5 記憶體存取 84
3.6 MASM對資料對齊的支援 85
3.7 x86-64的尋址模式 87
3.7.1 x86-64的暫存器尋址模式 88
3.7.2 x86-64的64位元記憶體定址模式 88
3.7.3 不支援大位址的應用程式 91
3.8 位址表達式 94
3.9 棧段以及push和pop指令 97
3.9.1 基本的push指令 97
3.9.2 基本的pop指令 98
3.9.3 使用push和pop指令保存暫存器的狀態 99
3.10 棧 99
3.11 其他push和pop指令 102
3.12 不透過彈出棧從堆疊中移除資料 102
3.13 不透過彈出堆疊存取壓入堆疊的資料 103
3.14 微軟ABI註釋 104
3.15 拓展閱讀資料 104
3.16 自測題 104
第4章 常數、變數與資料型態 106
4.1 imul指令 106
4.2 inc和dec指令 107
4.3 MASM常數聲明 107
4.3.1 常數表達式 109
4.3.2 this和$運算子 111
4.3.3 常數表達式求值 112
4.4 MASM typedef語句 112
4.5 型強制 113
4.6 指標資料型別 116
4.6.1 在組合語言中使用指標 117