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)
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$580$458 -
$400$360 -
$551嵌入式實時操作系統 μC/OS-Ⅱ 經典實例-基於 STM32 處理器, 2/e
-
$654$621 -
$352ARM Linux 入門與實踐 — 基於 TI AM335x 處理器
-
$648$616 -
$800$632 -
$780$616 -
$454Python 密碼學編程, 2/e
-
$458Python 自動化編程實戰 — 讓繁瑣工作自動化
-
$1,079$1,025 -
$414$393 -
$528$502 -
$800$680 -
$774$735 -
$352嵌入式系統原理與應用 — 基於 Linux 和 ARM
-
$588$559 -
$403惡意代碼逆向分析基礎詳解
-
$594$564 -
$599$569 -
$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的宏工具。
作者簡介
蘭德爾·海德(Randall Hyde)是The Art of Assembly Language(《彙編語言的程式設計藝術》)和Write Great Code(《程式設計卓越之道》)第1~3捲(均由No Starch Press出版),以及Using 6502 Assembly Language和P-Source(由Datamost出版)的作者。他也是Microsoft Macro Assembler 6.0 Bible(由Waite Group出版)一書的合著者。在過去的40年裡,Hyde一直從事嵌入式軟件/硬件工程師的工作,為核反應器、交通控制系統和其他電子設備開發相關指令集。他也曾在加州理工大學波莫納分校和加州大學河濱分校教授電腦科學課程。
目錄大綱
目 錄
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