天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當前位置:主頁 > 論文百科 > 大學課程 >

匯編語言的編程藝術(shù) 匯編語言的編程藝術(shù)(第2版) PDF掃描版[MB] 下載

發(fā)布時間:2017-04-30 21:04

  本文關(guān)鍵詞:匯編語言,由筆耕文化傳播整理發(fā)布。


匯編語言的編程藝術(shù)(第2版)》內(nèi)容簡介:

匯編語言是一種低級編程語言,只比計算機本身的機器語言高一級。雖然匯編語言經(jīng)常用于編寫設備驅(qū)動程序、模擬器和視頻游戲,但是許多程序員認為匯編語言的語法不太友好,很難學習和使用。

1996年以來,randall hyde的《匯編語言的編程藝術(shù)》一書為非匯編程序員提供了全面、易讀和循序漸進的32位x86匯編語言的介紹。hyde使用的主要教學工具是高級語言匯編器(highlevelassembler,hla),其中提供了許多高級語言(如c、c++和java)的功能,以幫助讀者快速掌握匯編語言的基本概念。hla在允許匯編語言程序員編寫真正低級代碼的同時,也使他們能夠利用高級語言編程的優(yōu)勢。

通過閱讀《匯編語言的編程藝術(shù)(第2版)》,讀者可以學到計算機科學的底層理論基礎,并將所學知識轉(zhuǎn)化為真正可以運行的代碼。

匯編語言的編程藝術(shù)(第2版)》內(nèi)容、編輯、編譯和運行hla程序聲明和使用常量、標量變量、指針、數(shù)組、結(jié)構(gòu)、聯(lián)合和命名空間、轉(zhuǎn)換算術(shù)表達式(整型和浮點型)、轉(zhuǎn)換高級控制結(jié)構(gòu)。

《匯編語言的編程藝術(shù)(第2版)》是匯編語言學習者翹首以盼的《匯編語言的編程藝術(shù)》的第2版。與第1版相比,《匯編語言的編程藝術(shù)(第2版)》新增了反映hla最新變化的內(nèi)容,并介紹了如何支持linux、macosx和freebsd。匯編語言是一門復雜的低級語言,但是無論讀者是否具有高級語言編程經(jīng)驗,都可以借助《匯編語言的編程藝術(shù)(第2版)》掌握它。


作者簡介             
作者:(美國)海德(Randall Hyde) 譯者:馬躍 包戰(zhàn)
海德,Randall Hyde是Write Great Code。Volumes 1和Volumes 2的作者,并且與人合著了MASM 6.0 Bible。他為Dr.Dobb’s Journal、Byte和多種專業(yè)刊物撰稿。他在加州大學河濱分校講授匯編語言已經(jīng)超過了十年的時間。 


匯編語言的編程藝術(shù)(第2版) 目錄

第1章 進入匯編語言的世界 1
1.1 hla程序的結(jié)構(gòu) 1
1.2 運行第一個hla程序 3
1.3 基本的hla數(shù)據(jù)聲明 4
1.4 布爾值 6
1.5 字符值 6
1.6 intel 80x86 cpu系列簡介 6
1.7 存儲子系統(tǒng) 9
1.8 基本的機器指令 11
1.9 基本的hla控制結(jié)構(gòu) 14
1.9.1 hla語句中的布爾表達式 14
1.9.2 hla中的if..then..elseif..else..endif語句 16
1.9.3 布爾表達式中的邏輯與、邏輯或以及邏輯非 18
1.9.4 while..endwhile語句 20
1.9.5 for..endfor語句 20
1.9.6 repeat..until語句 21
1.9.7 break和breakif語句 22
1.9.8 forever..endfor語句 22
1.9.9 try..exception..endtry語句 23
1.10 hla標準庫入門 26
1.10.1 stdio模塊中的預定義常量 28
1.10.2 標準輸入和標準輸出 29
1.10.3 stdout.newln例程 29
1.10.4 stdout.putix例程 29
1.10.5 stdout.putixsize例程 29
1.10.6 stdout.put例程 31
1.10.7 stdin.getc例程 32
1.10.8 stdin.getix例程 33
1.10.9 stdin.readln和stdin.flushinput例程 34
1.10.10 stdin.get例程 35
1.11 關(guān)于try..endtry的其他細節(jié) 35
1.11.1 try..endtry嵌套語句 36
1.11.2 try..endtry語句中不受保護的子句 38
1.11.3 try..endtry語句中的anyexception子句 40
1.11.4 寄存器與try..endtry語句 41
1.12 高級匯編語言與低級匯編語言的比較 42
1.13 更多信息 43

第2章 數(shù)據(jù)表示 45
2.1 數(shù)字系統(tǒng) 45
2.1.1 回顧十進制系統(tǒng) 45
2.1.2 二進制數(shù)字系統(tǒng) 46
2.1.3 二進制格式 47
2.2 十六進制數(shù)字系統(tǒng) 47
2.3 數(shù)據(jù)結(jié)構(gòu) 49
2.3.1 位 49
2.3.2 半字節(jié) 50
2.3.3 字節(jié) 51
2.3.4 字 52
2.3.5 雙字 53
2.3.6 四字和長字 53
2.4 二進制數(shù)和十六進制數(shù)的算術(shù)運算 54
2.5 關(guān)于數(shù)字及其表示 55
2.6 位邏輯運算 57
2.7 二進制數(shù)和位串的邏輯運算 59
2.8 有符號數(shù)和無符號數(shù) 61
2.9 符號擴展、零擴展、壓縮和飽和 65
2.10 移位和循環(huán)移位 68
2.11 位域和壓縮數(shù)據(jù) 72
2.12 浮點運算簡介 76
2.12.1 ieee浮點格式 79
2.12.2 hla為浮點數(shù)值提供的支持 81
2.13 bcd數(shù)據(jù)表示 84
2.14 字符 85
2.14.1 ascii字符編碼 85
2.14.2 hla對ascii字符提供的支持 88
2.15 unicode字符集 91
2.16 更多信息 92

第3章 存儲器的訪問與結(jié)構(gòu) 93
3.1 80x86的尋址方式 93
3.1.1 80x86寄存器尋址方式 94
3.1.2 80x86的32位存儲器尋址方式 94
3.2 運行時存儲器的結(jié)構(gòu) 100
3.2.1 代碼段 101
3.2.2 靜態(tài)段 102
3.2.3 只讀數(shù)據(jù)段 103
3.2.4 存儲段 103
3.2.5 @nostorage屬性 104
3.2.6 var段 104
3.2.7 程序中聲明段的結(jié)構(gòu) 105
3.3 hla如何為變量分配內(nèi)存 106
3.4 hla對數(shù)據(jù)對齊的支持 107
3.5 地址表達式 109
3.6 類型強制轉(zhuǎn)換 111
3.7 寄存器類型強制轉(zhuǎn)換 113
3.8 棧段與push和pop指令 114
3.8.1 基本的push指令 114
3.8.2 基本的pop指令 115
3.8.3 用push和pop指令保護寄存器 116
3.9 棧的lifo數(shù)據(jù)結(jié)構(gòu) 117
3.9.1 其他的push和pop指令 118
3.9.2 不使用出棧而從棧內(nèi)移除數(shù)據(jù) 119
3.10 訪問已入棧而未出棧的數(shù)據(jù) 120
3.11 動態(tài)內(nèi)存分配和堆段 122
3.12 inc和dec指令 125
3.13 獲取存儲器對象的地址 125
3.14 更多信息 126

第4章 常量、變量與數(shù)據(jù)類型 127
4.1 一些額外的指令:intmul、bound、into 127
4.2 hla常量和數(shù)值聲明 131
4.2.1 常量類型 134
4.2.2 字符串和字符字面常量 135
4.2.3 const段中的字符串常量與文本常量 137
4.2.4 常量表達式 138
4.2.5 hla程序中的多個const段以及它們的順序 140
4.2.6 hla的val段 140
4.2.7 在程序中的任意位置修改val對象 141
4.3 hla的type段 142
4.4 enum和hla枚舉數(shù)據(jù)類型 143
4.5 指針數(shù)據(jù)類型 144
4.5.1 在匯編語言中使用指針 145
4.5.2 在hla中聲明指針 146
4.5.3 指針常量和指針常量表達式 146
4.5.4 指針變量和動態(tài)內(nèi)存分配 147
4.5.5 指針的常見問題 147
4.6 復合數(shù)據(jù)類型 151
4.7 字符串 151
4.8 hla字符串 154
4.9 訪問字符串中的字符 159
4.10 hla字符串模塊和其他與字符串相關(guān)的例程 160
4.11 存儲器內(nèi)的轉(zhuǎn)換 170
4.12 字符集 171
4.13 在hla中實現(xiàn)字符集 172
4.14 hla字符集常量和字符集表達式 173
4.15 hla標準庫對字符集的支持 175
4.16 在hla程序中使用字符集 177
4.17 數(shù)組 178
4.18 在hla程序中聲明數(shù)組 179
4.19 hla數(shù)組常量 180
4.20 訪問一維數(shù)組的元素 181
4.21 數(shù)組排序 182
4.22 多維數(shù)組 183
4.22.1 以行為主排列 184
4.22.2 以列為主排列 187
4.23 多維數(shù)組的存儲空間分配 187
4.24 匯編語言中多維數(shù)組元素的訪問 189
4.25 記錄 190
4.26 記錄常量 192
4.27 記錄數(shù)組 193
4.28 數(shù)組/記錄作為記錄字段 194
4.29 對齊記錄中的字段 197
4.30 記錄指針 198
4.31 聯(lián)合 200
4.32 匿名聯(lián)合 202
4.33 變體類型 203
4.34 命名空間 203
4.35 匯編語言中的動態(tài)數(shù)組 206
4.36 更多信息 208

第5章 過程和單元 209
5.1 過程 209
5.2 機器狀態(tài)的保存 211
5.3 過程的提前返回 215
5.4 局部變量 215
5.5 其他局部和全局符號類型 220
5.6 參數(shù) 220
5.6.1 值傳遞 221
5.6.2 引用傳遞 224
5.7 函數(shù)和函數(shù)的結(jié)果 226
5.7.1 返回函數(shù)結(jié)果 227
5.7.2 hla中的指令合成 227
5.7.3 hla過程的@returns選項 229
5.8 遞歸 231
5.9 過程的向前引用 235
5.10 hla v2.0的過程聲明 236
5.11 過程的底層實現(xiàn)與call指令 236
5.12 過程與棧 238
5.13 活動記錄 240
5.14 標準入口序列 242
5.15 標準出口序列 244
5.16 自動(局部)變量的底層實現(xiàn) 245
5.17 參數(shù)的底層實現(xiàn) 246
5.17.1 在寄存器中傳遞參數(shù) 247
5.17.2 在代碼流中傳遞參數(shù) 249
5.17.3 在棧中傳遞參數(shù) 251
5.18 過程指針 269
5.19 過程參數(shù) 272
5.20 無類型的引用參數(shù) 273
5.21 管理大型程序 274
5.22 #include偽指令 274
5.23 忽略重復的#include操作 276
5.24 單元與external偽指令 276
5.24.1 偽指令external的行為 280
5.24.2 hla中的頭文件 281
5.25 命名空間污染 282
5.26 更多信息 284

第6章 算術(shù)運算 287
6.1 80x86的整數(shù)運算指令 287
6.1.1 mul和imul指令 287
6.1.2 div和idiv指令 290
6.1.3 cmp指令 292
6.1.4 setcc指令 296
6.1.5 test指令 298
6.2 算術(shù)表達式 299
6.2.1 簡單賦值 300
6.2.2 簡單表達式 300
6.2.3 復雜表達式 302
6.2.4 可交換運算符 307
6.3 邏輯(布爾)表達式 308
6.4 機器特性與運算技巧 309
6.4.1 不使用mul、imul或intmul的乘法 310
6.4.2 不使用div或idiv的除法 311
6.4.3 使用and實現(xiàn)模n計數(shù)器 311
6.5 浮點運算 312
6.5.1 fpu寄存器 312
6.5.2 fpu的數(shù)據(jù)類型 317
6.5.3 fpu的指令集 318
6.5.4 fpu的數(shù)據(jù)轉(zhuǎn)移指令 318
6.5.5 換算指令 320
6.5.6 算術(shù)運算指令 322
6.5.7 比較指令 327
6.5.8 常量指令 329
6.5.9 超越指令 329
6.5.10 其他指令 331
6.5.11 整數(shù)操作 332
6.6 將浮點表達式轉(zhuǎn)換成匯編語言 332
6.6.1 將算術(shù)表達式轉(zhuǎn)換成后綴表示法 334
6.6.2 將后綴表達式轉(zhuǎn)換成匯編語言 335
6.7 hla標準庫對浮點算術(shù)運算的支持 336
6.8 更多信息 337

第7章 低級控制結(jié)構(gòu) 339
7.1 低級控制結(jié)構(gòu) 339
7.2 語句標號 339
7.3 無條件控制轉(zhuǎn)移(jmp) 341
7.4 條件跳轉(zhuǎn)指令 343
7.5 “中級”控制結(jié)構(gòu):jt和jf 346
7.6 使用匯編語言實現(xiàn)常用控制結(jié)構(gòu) 347
7.7 判定 347
7.7.1 if..then..else序列 348
7.7.2 將hla的if語句翻譯成純匯編語言 351
7.7.3 使用完整布爾求值實現(xiàn)復雜的if語句 355
7.7.4 短路布爾求值 356
7.7.5 短路布爾求值與完整布爾求值 357
7.7.6 匯編語言中if語句的高效實現(xiàn) 359
7.7.7 switch/case語句 363
7.8 狀態(tài)機和間接跳轉(zhuǎn) 372
7.9 “意大利面條式”代碼 375
7.10 循環(huán) 375
7.10.1 while循環(huán) 376
7.10.2 repeat..until循環(huán) 377
7.10.3 forever..endfor循環(huán) 378
7.10.4 for循環(huán) 378
7.10.5 break和continue語句 379
7.10.6 寄存器的使用與循環(huán) 383
7.11 性能提高 384
7.11.1 將結(jié)束條件判斷放在循環(huán)結(jié)尾 384
7.11.2 反向執(zhí)行循環(huán) 386
7.11.3 循環(huán)不變計算 387
7.11.4 循環(huán)展開 388
7.11.5 歸納變量 389
7.12 hla中的混合控制結(jié)構(gòu) 390
7.13 更多信息 392

第8章 高級算術(shù)運算 393
8.1 多精度操作 393
8.1.1 擴展精度操作的hla標準庫支持 394
8.1.2 多精度加法運算 396
8.1.3 多精度減法運算 398
8.1.4 擴展精度比較操作 399
8.1.5 擴展精度乘法操作 403
8.1.6 擴展精度除法操作 406
8.1.7 擴展精度neg操作 414
8.1.8 擴展精度and操作 415
8.1.9 擴展精度or操作 415
8.1.10 擴展精度xor操作 416
8.1.11 擴展精度not操作 416
8.1.12 擴展精度移位操作 416
8.1.13 擴展精度循環(huán)移位操作 419
8.1.14 擴展精度i/o 420
8.2 對不同長度的操作數(shù)進行操作 437
8.3 十進制算術(shù)運算 439
8.3.1 字面bcd常量 440
8.3.2 80x86的daa指令和das指令 441
8.3.3 80x86的aaa、aas、aam和aad指令 442
8.3.4 使用fpu的壓縮十進制算術(shù)操作 443
8.4 表 445
8.4.1 通過表查找進行函數(shù)計算 445
8.4.2 域調(diào)節(jié) 449
8.4.3 產(chǎn)生表 450
8.4.4 表查找的性能 453
8.5 更多信息 453

第9章 宏與hla編譯時語言 455
9.1 編譯時語言 455
9.2 #print和#error語句 457
9.3 編譯時常量和變量 458
9.4 編譯時表達式和操作符 458
9.5 編譯時函數(shù) 461
9.5.1 類型轉(zhuǎn)換編譯時函數(shù) 462
9.5.2 數(shù)值編譯時函數(shù) 463
9.5.3 字符分類編譯時函數(shù) 463
9.5.4 編譯時字符串函數(shù) 463
9.5.5 編譯時符號信息 464
9.5.6 其他編譯時函數(shù) 465
9.5.7 編譯時文本對象的類型轉(zhuǎn)換 465
9.6 條件編譯(編譯時判定) 467
9.7 重復編譯(編譯時循環(huán)) 470
9.8 宏(編譯時過程) 473
9.8.1 標準宏 473
9.8.2 宏參數(shù) 475
9.8.3 宏中的局部符號 480
9.8.4 作為編譯時過程的宏 482
9.8.5 使用宏模擬函數(shù)重載 483
9.9 編寫編譯時“程序” 488
9.9.1 在編譯時構(gòu)造數(shù)據(jù)表 488
9.9.2 循環(huán)展開 492
9.10 在不同的源文件中使用宏 493
9.11 更多信息 493

第10章 位操作 495
10.1 位數(shù)據(jù) 495
10.2 位操作指令 496
10.3 作為位累加器的進位標志 502
10.4 位串的壓縮與解壓縮 503
10.5 接合位組與分布位串 506
10.6 壓縮的位串數(shù)組 508
10.7 搜索位 510
10.8 位的計數(shù) 512
10.9 倒置位串 515
10.10 合并位串 517
10.11 提取位串 517
10.12 搜索位模式 519
10.13 hla標準庫的位模塊 520
10.14 更多信息 522

第11章 字符串指令 523
11.1 80x86字符串指令 523
11.1.1 字符串指令的操作過程 524
11.1.2 rep/repe/repz和repnz/repne前綴 524
11.1.3 方向標志 525
11.1.4 movs指令 527
11.1.5 cmps指令 531
11.1.6 scas指令 534
11.1.7 stos指令 534
11.1.8 lods指令 535
11.1.9 通過lods和stos構(gòu)建復雜 的字符串函數(shù) 536
11.2 80x86字符串指令的性能 536
11.3 更多信息 536

第12章 類與對象 539
12.1 通用原則 539
12.2 hla中的類 541
12.3 對象 543
12.4 繼承 545
12.5 重寫 546
12.6 虛擬方法與靜態(tài)過程 547
12.7 編寫類方法和過程 548
12.8 對象實現(xiàn) 552
12.8.1 虛擬方法表 554
12.8.2 帶繼承的對象表示 556
12.9 構(gòu)造函數(shù)和對象初始化 560
12.9.1 構(gòu)造函數(shù)中的動態(tài)對象 分配 561
12.9.2 構(gòu)造函數(shù)和繼承 563
12.9.3 構(gòu)造函數(shù)的參數(shù)和過程 重載 566
12.10 析構(gòu)函數(shù) 566
12.11 hla的_initialize_和_finalize_ 字符串 567
12.12 抽象方法 572
12.13 運行時類型信息 574
12.14 調(diào)用基類的方法 576
12.15 更多信息 577
附錄 ascii字符集 579          


  本文關(guān)鍵詞:匯編語言,由筆耕文化傳播整理發(fā)布。

,

本文編號:337571

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/wenshubaike/dxkc/337571.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶22412***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com