x64 匯編語言:從新手到 AVX 專家 Beginning X64 Assembly Programming: From Novice to Avx Professional
Jo Van Hoey 賈玉彬 王昱波 譯
- 出版商: 清華大學
- 出版日期: 2022-01-01
- 定價: $528
- 售價: 8.5 折 $449
- 語言: 簡體中文
- 頁數: 368
- ISBN: 7302595461
- ISBN-13: 9787302595465
-
相關分類:
Assembly、資訊安全、Computer-networks
- 此書翻譯自: Beginning X64 Assembly Programming: From Novice to Avx Professional (Paperback)
立即出貨
買這商品的人也買了...
-
$550$495 -
$720$648 -
$834$792 -
$520$442 -
$414$393 -
$714$678 -
$779$740 -
$834$792 -
$880$660 -
$774$735 -
$774$735 -
$880$695 -
$880$695 -
$1,805$1,710 -
$403C語言編程思想與方法
-
$894$849 -
$505Linux C/C++ 服務器開發實踐
-
$880$695 -
$840$798 -
$780$616 -
$680$537 -
$528$502 -
$594$564 -
$662深入理解軟件性能——一種動態視角
-
$505編程智慧:程式設計鬼才的經驗與思考
相關主題
商品描述
主要內容 .瞭解 CPU和內存的工作原理 .理解電腦和操作系統如何協同工作 .瞭解高級語言編譯器如何生成機器語言,並使用這些知識編寫更高效的代碼 . 更好地分析程序中的錯誤 . 讓程序正常工作,這一部分十分有趣 . 調查惡意軟件並採取必要的行動加以預防
作者簡介
Jo Van Hoey擁有40年的IT行業從業經驗,包括各種職能部門、多家IT公司和各種計算平台。他近從IBM大型機軟件客戶經理職位上休。出於對IT安全的興趣,Jo長期深入研究彙編語言,因為彙編語言知識是保護IT基礎設施抵禦攻擊和惡意軟件的重要基礎。
目錄大綱
目 錄
第1章 你的第一個程序 1
1.1 編輯、匯編、鏈接和運行(或調試) 2
1.2 匯編程序的結構 6
1.2.1 .data段 6
1.2.2 .bss段 7
1.2.3 .txt段 8
1.3 小結 10
第2章 二進制數、十六進制數和寄存器 11
2.1 二進制簡短課程 11
2.1.1 整數 12
2.1.2 浮點數 13
2.2 寄存器簡短課程 13
2.2.1 通用寄存器 14
2.2.2 指令指針寄存器(rip) 15
2.2.3 標志寄存器(Flag Register) 15
2.2.4 xmm和ymm寄存器 16
2.3 小結 16
第3章 用調試器進行程序分析:GDB 17
3.1 開始調試 17
3.2 繼續進步 22
3.3 其他GDB命令 24
3.4 稍加改進的hello, world程序 25
3.5 小結 27
第4章 你的下一個程序:Alive and Kicking 29
4.1 alive程序分析 30
4.2 打印 34
4.3 小結 37
第5章 匯編是基於邏輯的 39
5.1 NOT 39
5.2 OR 39
5.3 XOR 40
5.4 AND 41
5.5 小結 42
第6章 數據顯示調試器 43
6.1 使用DDD 43
6.2 小結 46
第7章 跳轉和循環 47
7.1 安裝SimpleASM 47
7.2 使用SASM 47
7.3 小結 54
第8章 內存 55
8.1 探索內存 55
8.2 小結 62
第9章 整數運算 63
9.1 從整數算術開始 63
9.2 分析算術指令 67
9.3 小結 69
第10章 堆棧 71
10.1 理解堆棧 71
10.2 跟蹤堆棧 74
10.3 小結 76
第11章 浮點運算 77
11.1 單精度與雙精度 77
11.2 浮點數編程 78
11.3 小結 81
第12章 函數 83
12.1 編寫一個簡單的函數 83
12.2 更多函數 85
12.3 小結 87
第13章 棧對齊和棧幀 89
13.1 棧對齊 89
13.2 有關棧幀的更多信息 91
13.3 小結 92
第14章 外部函數 93
14.1 編譯並鏈接函數 93
14.2 擴展makefile 97
14.3 小結 98
第15章 調用約定 99
15.1 函數參數 100
15.2 棧佈局 103
15.3 保留寄存器 106
15.4 小結 107
第16章 位運算 109
16.1 基礎 109
16.2 算術 115
16.3 小結 119
第17章 位操作 121
17.1 修改位的其他方法 121
17.2 位標志變量 124
17.3 小結 125
第18章 宏 127
18.1 編寫宏 127
18.2 使用objdump 129
18.3 小結 130
第19章 控制台I/O 131
19.1 使用I/O 131
19.2 處理溢出 133
19.3 小結 137
第20章 文件I/O 139
20.1 使用syscall 139
20.2 文件處理 140
20.3 條件匯編 149
20.4 文件操作指令 149
20.5 小結 151
第21章 命令行 153
21.1 訪問命令行參數 153
21.2 調試命令行 154
21.3 小結 156
第22章 從C到匯編 157
22.1 編寫C源文件 157
22.2 編寫匯編代碼 159
22.3 小結 164
第23章 內聯匯編 165
23.1 基本內聯匯編 165
23.2 擴展內聯匯編 167
23.3 小結 170
第24章 字符串 171
24.1 移動字符串 171
24.2 比較和掃描字符串 176
24.3 小結 181
第25章 cpuid 183
25.1 使用cpuid 183
25.2 使用test指令 186
25.3 小結 188
第26章 SIMD 189
26.1 標量數據和打包數據 189
26.2 數據對齊與不對齊 191
26.3 小結 192
第27章 小心mxcsr 193
27.1 操作mxcsr的位 194
27.2 分析程序 201
27.3 小結 202
第28章 SSE對齊 203
28.1 未對齊示例 203
28.2 對齊示例 206
28.3 小結 210
第29章 SSE打包整數 211
29.1 適用於整數的SSE指令 211
29.2 分析代碼 213
29.3 小結 214
第30章 SSE字符串操作 215
30.1 imm8控制字節 216
30.2 使用imm8控制字節 217
30.2.1 位0和1 217
30.2.2 位2和3 217
30.2.3 位4和5 218
30.2.4 位6 218
30.2.5 位7 219
30.2.6 標志 219
30.3 小結 220
第31章 搜索字符 221
31.1 確定字符串的長度 221
31.2 在字符串中搜索 224
31.3 小結 228
第32章 比較字符串 229
32.1 隱式長度 229
32.2 顯式長度 232
32.3 小結 236
第33章 重排 237
33.1 重排初探 237
33.2 重排廣播 243
33.3 重排反轉 244
33.4 重排旋轉 245
33.5 重排字節 245
33.6 小結 246
第34章 SSE字符串掩碼 247
34.1 搜索字符 247
34.2 搜索某個範圍內的字符 253
34.3 搜索子字符串 258
34.4 小結 262
第35章 AVX 263
35.1 測試是否支持AVX 263
35.2 AVX程序示例 265
35.3 小結 270
第36章 AVX矩陣運算 271
36.1 矩陣代碼示例 271
36.2 矩陣打印:printm4x4 281
36.3 矩陣乘法:multi4x4 281
36.4 矩陣求逆:Inverse4x4 284
36.4.1 Cayley-Hamilton定理 284
36.4.2 Leverrier算法 285
36.4.3 代碼 286
36.5 小結 289
第37章 矩陣轉置 291
37.1 轉置代碼示例 291
37.2 解包版本 295
37.3 重排版本 299
37.4 小結 301
第38章 性能調優 303
38.1 轉置計算性能 303
38.2 跡計算性能 310
38.3 小結 317
第39章 你好,Windows的世界 319
39.1 入門 319
39.2 編寫一些代碼 321
39.3 調試 323
39.4 syscall 323
39.5 小結 323
第40章 使用Windows API 325
40.1 控制台輸出 325
40.2 編譯Windows程序 328
40.3 小結 330
第41章 Windows中的函數 331
41.1 使用四個以上的參數 331
41.2 使用浮點數 337
41.3 小結 339
第42章 可變參數函數 341
42.1 Windows中的可變參數函數 341
42.2 混合值 343
42.3 小結 345
第43章 Windows文件 347
43.1 小結 350
後記 351