注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語言/工具Windows匯編語言程序設(shè)計(jì)教程

Windows匯編語言程序設(shè)計(jì)教程

Windows匯編語言程序設(shè)計(jì)教程

定 價(jià):¥32.00

作 者: 譚毓安,張雪蘭編著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 匯編語言程序設(shè)計(jì)

ISBN: 9787121009860 出版時(shí)間: 2005-04-01 包裝: 膠版紙
開本: 26cm 頁數(shù): 413 字?jǐn)?shù):  

內(nèi)容簡介

  本書以Windows操作系統(tǒng)和Intel80x86/Pentium系列CPU為背景,全面系統(tǒng)地介紹了32位保護(hù)模式下的匯編語言程序設(shè)計(jì),包括Windows編程環(huán)境、Intel80x86/Pentium指令系統(tǒng)、MASM的偽指令與操作符等知識(shí),以及分支、循環(huán)、子程序、C/C++混合編程、上機(jī)調(diào)試過程等程序設(shè)計(jì)方法。本書的核心是Windows下的32位保護(hù)模式編程,摒棄了過時(shí)的16位DOS實(shí)模式編程環(huán)境,與當(dāng)前的軟件開發(fā)和微機(jī)應(yīng)用環(huán)境結(jié)合緊密。本書不但能幫助讀者順利地掌握匯編語言程序設(shè)計(jì)方法,而且能夠提高讀者的C/C++編程水平。書中的程序具有很強(qiáng)的實(shí)用性,強(qiáng)調(diào)C/C++和匯編語言的聯(lián)合編程能力,通過這些實(shí)例與其他課程相呼應(yīng),有利于各門課程之間的融會(huì)貫通。本書適合作為高等院校匯編語言程序設(shè)計(jì)相關(guān)課程的教材或教學(xué)輔導(dǎo)書,也可作為希望掌握Windows匯編程序設(shè)計(jì)的中高級(jí)程序開發(fā)人員的自學(xué)參考書。本書前言前言:匯編語言是執(zhí)行效率最高、功能最強(qiáng)的一種程序設(shè)計(jì)語言,它能夠直接控制計(jì)算機(jī)硬件,并最大限度地發(fā)揮硬件的能力。在對(duì)程序的執(zhí)行時(shí)間和占用空間要求很高的場合,必須使用匯編語言才能滿足要求。匯編語言還可以與高級(jí)語言進(jìn)行混合編程,以發(fā)揮各自的優(yōu)勢。通過學(xué)習(xí)匯編語言,有助于理解操作系統(tǒng)和應(yīng)用程序的運(yùn)行原理,準(zhǔn)確地分析程序錯(cuò)誤。它也是掌握加密/解密技術(shù)、病毒蠕蟲機(jī)理、剖析關(guān)鍵代碼等高級(jí)技術(shù)的必備基礎(chǔ)?!秴R編語言程序設(shè)計(jì)》是一門程序設(shè)計(jì)課程,然而目前許多教材仍然基于DOS系統(tǒng)和8086/8088之上,與十幾年前的教材相比,僅僅增加了32位指令和保護(hù)模式的介紹,而核心內(nèi)容仍然是DOS下的16位實(shí)模式編程。其中的BIOS/DOS功能調(diào)用、64KB內(nèi)存分段結(jié)構(gòu)、上機(jī)環(huán)境、16位C/匯編混合編程等已經(jīng)嚴(yán)重落后于當(dāng)前的應(yīng)用環(huán)境,與國內(nèi)外主流的軟件開發(fā)需求嚴(yán)重脫節(jié)。我們認(rèn)為,隨著DOS逐步退出操作系統(tǒng)的歷史舞臺(tái),這門課程的基礎(chǔ)知識(shí)和實(shí)踐環(huán)節(jié)必須與時(shí)俱進(jìn),需要從DOS下的16位實(shí)模式編程過渡到Windows下的32位保護(hù)模式編程。本書的編寫就是在這樣的背景下完成的。本書選擇了Windows操作系統(tǒng)和32位Pentium微機(jī)作為平臺(tái),介紹匯編語言的基礎(chǔ)知識(shí)和應(yīng)用,達(dá)到與當(dāng)前軟件開發(fā)和應(yīng)用環(huán)境緊密結(jié)合的目的。本書有以下幾個(gè)特點(diǎn)。(1)從DOS過渡到Windows。不再介紹過時(shí)的BIOS/DOS功能調(diào)用和DOS執(zhí)行環(huán)境,取而代之的是Windows的API和C庫函數(shù),書中所有的例子都是在Windows保護(hù)模式環(huán)境下運(yùn)行的32位程序。(2)實(shí)踐性強(qiáng)。將實(shí)踐環(huán)節(jié)提前,將100多條指令貫穿于全書,全部程序都能上機(jī)調(diào)試運(yùn)行,使讀者能在實(shí)踐中掌握匯編語言程序設(shè)計(jì)并熟悉Pentium的指令系統(tǒng)。尤其是將VisualC/C++作為匯編的開發(fā)環(huán)境,極大地方便了匯編程序的編寫、調(diào)試和運(yùn)行。將各種指令和偽操作等內(nèi)容分解到全書中,逐步接觸并使用這些指令,會(huì)達(dá)到循序漸進(jìn)的效果。(3)與C/C++緊密結(jié)合。C/C++語言是目前的主流開發(fā)語言,往往也是匯編語言的先修課程。書中的部分C/C++程序與匯編程序相對(duì)照,在匯編程序中也調(diào)用了C庫函數(shù)。這不但有利于對(duì)匯編語言的掌握,而且能夠提高C/C++程序的編程水平,理解和解決在C/C++程序開發(fā)過程中遇到的結(jié)構(gòu)對(duì)齊、字節(jié)序、程序運(yùn)行效率、堆棧溢出、內(nèi)存覆蓋、系統(tǒng)崩潰、訪問違例等問題。C/C++和匯編語言聯(lián)合編程能夠應(yīng)用于當(dāng)前實(shí)際的軟件開發(fā)過程,具有很強(qiáng)的實(shí)踐指導(dǎo)性。(4)介紹了保護(hù)模式的運(yùn)行機(jī)制。在介紹保護(hù)模式時(shí),使用了大量的實(shí)例以幫助讀者更好地理解描述符、頁表、門、任務(wù)等復(fù)雜概念,其中還介紹了一個(gè)Windows內(nèi)核驅(qū)動(dòng)程序。通過對(duì)Pentium保護(hù)模式的學(xué)習(xí),能夠更透徹地理解虛擬內(nèi)存管理、進(jìn)程環(huán)境等其他相關(guān)知識(shí)。(5)采用典型編程實(shí)例。在示例程序中采用了指針、數(shù)組、結(jié)構(gòu)、鏈表等數(shù)據(jù)結(jié)構(gòu),以及冒泡排序、快速排序、折半查找、加密/解密等算法,既體現(xiàn)了匯編語言的編程特點(diǎn),又具有很強(qiáng)的實(shí)用性。(6)知識(shí)全面。增加了MASM6.1版本的匯編高級(jí)語法等,并介紹了DLL、C庫函數(shù)、WindowsAPI等內(nèi)容。(7)適合自學(xué)。對(duì)部分不能在課堂上講授的內(nèi)容,可安排自學(xué)。在編寫過程中,采用循序漸進(jìn)的敘述方法,配以大量的實(shí)例來幫助讀者對(duì)這些內(nèi)容進(jìn)行理解。書中的許多習(xí)題都是以例子程序?yàn)榛A(chǔ)的,可達(dá)到舉一反三的效果。Pentium指令系統(tǒng)中還包括浮點(diǎn)運(yùn)算、MMX多媒體擴(kuò)展、數(shù)據(jù)流SIMD擴(kuò)展(SSE、SSE2)等部分,考慮到它們的使用范圍較窄,由于篇幅所限,本書沒有介紹這方面的內(nèi)容,感興趣的讀者可以參考其他書籍。全書共分10章。第1,2,3章由張雪蘭教授編寫,其余各章由譚毓安副教授編寫。7.4節(jié)、7.5節(jié)、8.2節(jié)、8.5節(jié)及第10章屬于較高要求的內(nèi)容,在教學(xué)時(shí)可以根據(jù)情況進(jìn)行刪減。在本書的編寫過程中,不僅融合了作者多年來講授匯編語言程序設(shè)計(jì)課程的經(jīng)驗(yàn),還請(qǐng)多位老師和同學(xué)閱讀了書稿,提出了改進(jìn)意見,在此深表謝意。同時(shí),本書還參考了國內(nèi)外的眾多教材和資料,在此謹(jǐn)對(duì)這些教材和資料的原創(chuàng)者致謝。對(duì)書中的錯(cuò)誤和不當(dāng)之處,敬請(qǐng)廣大讀者批評(píng)指正。作者的電子郵箱是:victortan@yeah.net,歡迎通過電子郵件方式向本人索取本書的PowerPoint講稿和其他教學(xué)資料。編者

作者簡介

暫缺《Windows匯編語言程序設(shè)計(jì)教程》作者簡介

圖書目錄

第1章 基礎(chǔ)知識(shí) 1
1.1 常用數(shù)制及其相互轉(zhuǎn)換 1
1.2 存儲(chǔ)器內(nèi)的數(shù)字表示 3
1.2.1 存儲(chǔ)器 3
1.2.2 存儲(chǔ)順序 6
1.3 數(shù)據(jù)表示 8
1.3.1 整數(shù)的表示 8
1.3.2 字符的表示 9
1.3.3 漢字的表示 9
1.3.4 Unicode標(biāo)準(zhǔn) 10
1.3.5 BCD碼 11
習(xí)題1 11
第2章 Intel 80x86系列微處理器 13
2.1 Intel CPU的發(fā)展 13
2.1.1 4位CPU:4004 13
2.1.2 8位CPU:8008. 8080 13
2.1.3 16位CPU:8086. 8088. 80286 13
2.1.4 32位CPU:80386. 80486 14
2.1.5 準(zhǔn)64位CPU:Pentium. PⅡ. PⅢ. P4 14
2.1.6 64位CPU:Itanium 16
2.2 PC機(jī)操作系統(tǒng)的發(fā)展 16
2.2.1 MS-DOS 16
2.2.2 桌面Windows系統(tǒng) 17
2.2.3 Windows NT系列 17
2.2.4 Linux 18
2.3 16位CPU及DOS基礎(chǔ) 19
2.3.1 執(zhí)行單元 19
2.3.2 總線接口單元 20
2.3.3 寄存器 20
2.3.4 存儲(chǔ)器的分段 22
2.3.5 DOS的內(nèi)存布局 23
2.3.6 I/O地址空間 25
2.4 32位CPU及Windows基礎(chǔ) 25
2.4.1 三種工作模式 25
2.4.2 寄存器 27
2.4.3 Windows應(yīng)用程序的內(nèi)存布局 29
2.4.4 Windows的保護(hù)機(jī)制 32
習(xí)題2 34
第3章 Windows匯編程序基礎(chǔ) 36
3.1 機(jī)器語言. 匯編語言和高級(jí)語言 36
3.1.1 機(jī)器語言 36
3.1.2 匯編語言 37
3.1.3 高級(jí)語言 38
3.1.4 三種語言的比較 38
3.2 匯編語言程序的上機(jī)過程 39
3.2.1 匯編程序的開發(fā)過程 40
3.2.2 MASM匯編器 41
3.2.3 LINK鏈接器 42
3.2.4 匯編鏈接步驟 42
3.3 匯編源程序的格式 43
3.3.1 一個(gè)顯示字符串的匯編程序 43
3.3.2 程序格式 44
3.3.3 一個(gè)Windows界面的匯編程序 51
3.4 操作數(shù)的尋址方式 52
3.4.1 立即尋址 53
3.4.2 寄存器尋址 53
3.4.3 直接尋址 54
3.4.4 寄存器間接尋址 54
3.4.5 寄存器相對(duì)尋址 55
3.4.6 基址變址尋址 56
3.4.7 基址變址相對(duì)尋址 57
3.4.8 基址變址比例相對(duì)尋址 57
3.4.9 尋址方式總結(jié) 58
3.4.10 段超越 59
3.5 數(shù)據(jù)定義 60
3.5.1 常數(shù)的表示 60
3.5.2 簡單數(shù)據(jù)類型 61
3.5.3 DUP偽操作 62
3.5.4 數(shù)據(jù)定義的例子程序 62
3.6 操作符 66
3.6.1 常用偽操作 66
3.6.2 算術(shù)操作符 71
3.6.3 邏輯操作符 72
3.6.4 關(guān)系操作符 72
3.7 尋址方式的應(yīng)用 72
3.7.1 立即數(shù) 72
3.7.2 數(shù)組元素的訪問 73
3.7.3 指針 74
習(xí)題3 76
第4章 數(shù)據(jù)操作 78
4.1 傳送指令 78
4.1.1 通用數(shù)據(jù)傳送指令 78
4.1.2 數(shù)據(jù)交換指令 81
4.1.3 取地址指令 82
4.2 算術(shù)運(yùn)算 83
4.2.1 加法指令 83
4.2.2 減法指令 86
4.2.3 符號(hào)位擴(kuò)展指令 89
4.2.4 乘法指令 91
4.2.5 除法指令 93
4.3 BCD碼算術(shù)運(yùn)算 95
4.3.1 壓縮BCD碼調(diào)整指令 95
4.3.2 非壓縮BCD碼調(diào)整指令 96
4.4 位運(yùn)算指令 98
4.4.1 邏輯運(yùn)算指令 98
4.4.2 位操作指令 102
4.4.3 移位指令 104
習(xí)題4 109
第5章 分支與循環(huán)程序設(shè)計(jì) 111
5.1 轉(zhuǎn)移 111
5.1.1 無條件轉(zhuǎn)移指令 111
5.1.2 條件轉(zhuǎn)移指令 112
5.2 分支結(jié)構(gòu)程序設(shè)計(jì) 114
5.2.1 單分支結(jié)構(gòu)和雙分支結(jié)構(gòu) 115
5.2.2 多分支結(jié)構(gòu) 116
5.2.3 折半查找程序 119
5.2.4 有序表插入 121
5.3 循環(huán)程序設(shè)計(jì) 123
5.3.1 循環(huán)指令 124
5.3.2 不定次數(shù)的循環(huán) 128
5.3.3 循環(huán)體中操作的控制 128
5.3.4 多重循環(huán) 130
5.4 跳轉(zhuǎn)表 132
5.4.1 switch語句 132
5.4.2 跳轉(zhuǎn)表 133
習(xí)題5 135
第6章 子程序設(shè)計(jì) 137
6.1 堆棧 137
6.1.1 堆??臻g 137
6.1.2 進(jìn)棧和出棧指令 138
6.1.3 堆棧的用途 141
6.2 子程序 143
6.2.1 子程序的定義和調(diào)用 144
6.2.2 調(diào)用和返回指令 144
6.2.3 C語言函數(shù)的參數(shù)傳遞方式 147
6.2.4 匯編語言子程序的參數(shù)傳遞方式 153
6.2.5 帶參數(shù)子程序的調(diào)用 154
6.2.6 子程序中的局部變量 157
6.2.7 子程序的嵌套 163
6.2.8 子程序的遞歸 163
6.3 Windows API 166
習(xí)題6 168
第7章 常用數(shù)據(jù)結(jié)構(gòu) 171
7.1 數(shù)組與內(nèi)存塊 171
7.1.1 塊操作 172
7.1.2 塊傳送指令 173
7.1.3 塊存儲(chǔ)指令 178
7.1.4 塊裝入指令 178
7.1.5 塊比較指令 179
7.1.6 塊掃描指令 181
7.2 字符串處理 182
7.2.1 常用字符串處理函數(shù) 183
7.2.2 常用內(nèi)存塊處理函數(shù) 185
7.3 結(jié)構(gòu) 188
7.3.1 表示時(shí)間的結(jié)構(gòu) 188
7.3.2 結(jié)構(gòu)的聲明和定義 190
7.3.3 結(jié)構(gòu)數(shù)組 193
7.4 鏈表 198
7.4.1 動(dòng)態(tài)分配和釋放內(nèi)存 198
7.4.2 鏈表中元素的插入與刪除 199
7.4.3 鏈表的排序 204
7.4.4 雙向鏈表 207
7.5 函數(shù)指針 207
7.5.1 指向子程序(函數(shù))的指針 208
7.5.2 結(jié)構(gòu)中的函數(shù)指針 210
7.6 程序執(zhí)行環(huán)境 212
7.6.1 輸入/輸出重定向 212
7.6.2 命令行參數(shù)及程序返回值 213
習(xí)題7 214
第8章 匯編語言高級(jí)編程技術(shù) 216
8.1 宏 216
8.1.1 宏指令的定義和使用 216
8.1.2 宏指令中參數(shù)的使用 220
8.1.3 特殊的宏操作符 222
8.1.4 宏與子程序的區(qū)別 226
8.1.5 重復(fù)匯編 227
8.1.6 條件匯編 230
8.2 匯編高級(jí)語法 236
8.2.1 條件測試表達(dá)式 237
8.2.2 分支偽操作 239
8.2.3 循環(huán)偽操作 241
8.3 模塊化程序設(shè)計(jì) 244
8.3.1 模塊化程序設(shè)計(jì)基本概念 244
8.3.2 模塊間的通信 245
8.4 C和匯編的混合編程 247
8.4.1 直接嵌入 247
8.4.2 C程序調(diào)用匯編子程序 249
8.4.3 匯編調(diào)用C函數(shù) 259
8.4.4 C 與匯編 261
8.5 程序優(yōu)化 268
8.5.1 運(yùn)行時(shí)間的優(yōu)化 269
8.5.2 占用空間的優(yōu)化 276
習(xí)題8 280
第9章 I/O程序設(shè)計(jì) 283
9.1 I/O操作 283
9.1.1 I/O端口及其分配 283
9.1.2 I/O指令 286
9.1.3 保護(hù)模式下I/O指令的限制 288
9.2 直接傳送方式 289
9.2.1 CMOS數(shù)據(jù)的讀取 289
9.2.2 揚(yáng)聲器發(fā)聲程序 292
9.2.3 串行I/O 294
9.2.4 并行I/O 296
9.3 中斷傳送方式 298
9.3.1 基本原理 298
9.3.2 中斷服務(wù)程序 300
9.4 DMA傳送方式 302
9.4.1 DMA傳送的過程 303
9.4.2 軟盤控制器與DMA 304
9.5 文件I/O 304
9.5.1 文件 305
9.5.2 文件操作的基本函數(shù) 307
9.5.3 文件處理實(shí)例 310
習(xí)題9 316
第10章 保護(hù)模式及其編程 318
10.1 保護(hù)模式基礎(chǔ) 318
10.1.1 32位CPU內(nèi)部結(jié)構(gòu) 318
10.1.2 三種運(yùn)行模式 320
10.1.3 寄存器 321
10.1.4 顯示CPU寄存器的值 327
10.2 虛擬內(nèi)存管理 331
10.2.1 段式內(nèi)存管理功能 331
10.2.2 頁式內(nèi)存管理功能 336
10.3 特權(quán)級(jí)保護(hù) 347
10.3.1 對(duì)數(shù)據(jù)訪問的保護(hù) 348
10.3.2 對(duì)程序轉(zhuǎn)移的保護(hù) 350
10.3.3 門 351
10.4 任務(wù) 354
10.4.1 任務(wù)狀態(tài)段 354
10.4.2 任務(wù)切換 358
10.4.3 輸入/輸出保護(hù) 362
10.4.4 編寫驅(qū)動(dòng)程序修改I/O位圖 364
10.5 中斷和異常 369
10.5.1 中斷和異常的類型 369
10.5.2 中斷門和陷阱門 376
10.5.3 中斷和異常的處理過程 378
10.5.4 通過任務(wù)門的轉(zhuǎn)移 381
10.5.5 結(jié)構(gòu)化異常處理 384
10.6 虛擬8086模式 389
10.6.1 虛擬8086任務(wù) 389
10.6.2 虛擬8086模式的進(jìn)入和退出 391
10.7 操作系統(tǒng)類指令 394
10.7.1 在實(shí)模式和任何特權(quán)級(jí)下可執(zhí)行的指令 395
10.7.2 僅在實(shí)模式及特權(quán)級(jí)0下可執(zhí)行的指令 396
10.7.3 僅在保護(hù)模式下可執(zhí)行的指令 397
習(xí)題10 401
附錄A 使用VC編譯調(diào)試匯編程序 403
附錄B ASCII碼表 410
附錄C 匯編語言偽指令和操作符 412
參考文獻(xiàn) 414

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)