x64 匯編語言:從新手到 AVX 專家 Beginning X64 Assembly Programming: From Novice to Avx Professional

Jo Van Hoey 賈玉彬 王昱波 譯

  • x64 匯編語言:從新手到 AVX 專家-preview-1
  • x64 匯編語言:從新手到 AVX 專家-preview-2
  • x64 匯編語言:從新手到 AVX 專家-preview-3
x64 匯編語言:從新手到 AVX 專家-preview-1

買這商品的人也買了...

商品描述

主要內容 .瞭解 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