發表於2024-11-21
本書是匯編語言課程的經典教材,係統介紹x86和Intel64處理器的匯編語言編程和架構。前9章為匯編語言的核心概念,包括:匯編語言基礎,x86處理器架構,數據傳送、尋址和算術運算,過程,條件處理,整數運算,高級過程,以及字符串和數組。本書為原書第7版,增加瞭部分實例程序的討論,補充瞭更多的復習題和關鍵術語,介紹瞭64位編程;還有配套的網上資料,提供完整的程序清單、復習題答案和編程練習的解決方案。
齣版者的話
譯者序
前言
第1章 基本概念 1
1.1 歡迎來到匯編語言的世界 1
1.1.1 讀者可能會問的問題 2
1.1.2 匯編語言的應用 4
1.1.3 本節迴顧 5
1.2 虛擬機概念 5
1.3 數據錶示 7
1.3.1 二進製整數 7
1.3.2 二進製加法 8
1.3.3 整數存儲大小 9
1.3.4 十六進製整數 10
1.3.5 十六進製加法 11
1.3.6 有符號二進製整數 12
1.3.7 二進製減法 13
1.3.8 字符存儲 14
1.3.9 本節迴顧 15
1.4 布爾錶達式 16
1.4.1 布爾函數真值錶 18
1.4.2 本節迴顧 18
1.5 本章小結 19
1.6 關鍵術語 19
1.7 復習題和練習 20
1.7.1 簡答題 20
1.7.2 算法基礎 21
第2章 x86處理器架構 23
2.1 一般概念 23
2.1.1 基本微機設計 23
2.1.2 指令執行周期 24
2.1.3 讀取內存 25
2.1.4 加載並執行程序 26
2.1.5 本節迴顧 26
2.2 32位x86處理器 27
2.2.1 操作模式 27
2.2.2 基本執行環境 27
2.2.3 x86內存管理 30
2.2.4 本節迴顧 30
2.3 64位x86-64處理器 30
2.3.1 64位操作模式 31
2.3.2 基本64位執行環境 31
2.4 典型x86計算機組件 32
2.4.1 主闆 32
2.4.2 內存 34
2.4.3 本節迴顧 34
2.5 輸入輸齣係統 34
2.5.1 I/O訪問層次 34
2.5.2 本節迴顧 36
2.6 本章小結 36
2.7 關鍵術語 37
2.8 復習題 38
第3章 匯編語言基礎 39
3.1 基本語言元素 39
3.1.1 第一個匯編語言程序 39
3.1.2 整數常量 40
3.1.3 整型常量錶達式 41
3.1.4 實數常量 41
3.1.5 字符常量 42
3.1.6 字符串常量 42
3.1.7 保留字 42
3.1.8 標識符 43
3.1.9 僞指令 43
3.1.10 指令 44
3.1.11 本節迴顧 46
3.2 示例:整數加減法 46
3.2.1 AddTwo程序 46
3.2.2 運行和調試AddTwo程序 48
3.2.3 程序模闆 52
3.2.4 本節迴顧 52
3.3 匯編、鏈接和運行程序 53
3.3.1 匯編–鏈接–執行周期 53
3.3.2 列錶文件 53
3.3.3 本節迴顧 55
3.4 定義數據 55
3.4.1 內部數據類型 55
3.4.2 數據定義語句 55
3.4.3 嚮AddTwo程序添加一個變量 56
3.4.4 定義BYTE和SBYTE數據 57
3.4.5 定義WORD和SWORD數據 59
3.4.6 定義DWORD和SDWORD數據 59
3.4.7 定義QWORD數據 60
3.4.8 定義壓縮BCD(TBYTE)數據 60
3.4.9 定義浮點類型 61
3.4.10 變量加法程序 61
3.4.11 小端順序 62
3.4.12 聲明未初始化數據 62
3.4.13 本節迴顧 63
3.5 符號常量 63
3.5.1 等號僞指令 63
3.5.2 計算數組和字符串的大小 64
3.5.3 EQU僞指令 65
3.5.4 TEXTEQU僞指令 66
3.5.5 本節迴顧 66
3.6 64位編程 67
3.7 本章小結 68
3.8 關鍵術語 69
3.8.1 術語 69
3.8.2 指令、運算符和僞指令 70
3.9 復習題和練習 70
3.9.1 簡答題 70
3.9.2 算法基礎 71
3.10 編程練習 71
第4章 數據傳送、尋址和算術運算 73
4.1 數據傳送指令 73
4.1.1 引言 73
4.1.2 操作數類型 73
4.1.3 直接內存操作數 74
4.1.4 MOV指令 75
4.1.5 整數的全零/符號擴展 76
4.1.6 LAHF和SAHF指令 77
4.1.7 XCHG指令 78
4.1.8 直接–偏移量操作數 78
4.1.9 示例程序(Moves) 79
4.1.10 本節迴顧 80
4.2 加法和減法 81
4.2.1 INC和DEC指令 81
4.2.2 ADD指令 81
4.2.3 SUB指令 81
4.2.4 NEG指令 82
4.2.5 執行算術錶達式 82
4.2.6 加減法影響的標誌位 82
4.2.7 示例程序(AddSubTest) 85
4.2.8 本節迴顧 86
4.3 與數據相關的運算符和僞指令 87
4.3.1 OFFSET運算符 87
4.3.2 ALIGN僞指令 88
4.3.3 PTR運算符 88
4.3.4 TYPE運算符 89
4.3.5 LENGTHOF運算符 89
4.3.6 SIZEOF運算符 90
4.3.7 LABEL僞指令 90
4.3.8 本節迴顧 90
4.4 間接尋址 91
4.4.1 間接操作數 91
4.4.2 數組 91
4.4.3 變址操作數 92
4.4.4 指針 93
4.4.5 本節迴顧 95
4.5 JMP和LOOP指令 95
4.5.1 JMP指令 96
4.5.2 LOOP指令 96
4.5.3 在Visual Studio調試器中顯示數組 97
4.5.4 整數數組求和 98
4.5.5 復製字符串 98
4.5.6 本節迴顧 99
4.6 64位編程 99
4.6.1 MOV指令 99
4.6.2 64位的SumArray程序 100
4.6.3 加法和減法 101
4.6.4 本節迴顧 102
4.7 本章小結 102
4.8 關鍵術語 104
4.8.1 術語 104
4.8.2 指令、運算符和僞指令 104
4.9 復習題和練習 104
4.9.1 簡答題 104
4.9.2 算法基礎 106
4.10 編程練習 107
第5章 過程 108
5.1 堆棧操作 108
5.1.1 運行時堆棧(32位模式) 108
5.1.2 PUSH和POP指令 110
5.1.3 本節迴顧 112
5.2 定義並使用過程 112
5.2.1 PROC僞指令 112
5.2.2 CALL和RET指令 114
5.2.3 過程調用嵌套 115
5.2.4 嚮過程傳遞寄存器參數 116
5.2.5 示例:整數數組求和 116
5.2.6 保存和恢復寄存器 118
5.2.7 本節迴顧 119
5.3 鏈接到外部庫 119
5.3.1 背景知識 119
5.3.2 本節迴顧 120
5.4 Irvine32鏈接庫 120
5.4.1 創建庫的動機 120
5.4.2 概述 122
5.4.3 過程詳細說明 123
5.4.4 庫測試程序 133
5.4.5 本節迴顧 139
5.5 64位匯編編程 139
5.5.1 Irvine64鏈接庫 139
5.5.2 調用64位子程序 140
5.5.3 x64調用規範 140
5.5.4 調用過程示例 141
5.6 本章小結 142
5.7 關鍵術語 143
5.7.1 術語 143
5.7.2 指令、運算符和僞指令 143
5.8 復習題和練習 143
5.8.1 簡答題 143
5.8.2 算法基礎 146
5.9 編程練習 146
第6章 條件處理 148
6.1 條件分支 148
6.2 布爾和比較指令 148
6.2.1 CPU狀態標誌 149
6.2.2 AND指令 149
6.2.3 OR指令 150
6.2.4 位映射集 151
6.2.5 XOR指令 152
6.2.6 NOT指令 153
6.2.7 TEST指令 153
6.2.8 CMP指令 154
6.2.9 置位和清除單個CPU標誌位 155
6.2.10 64位模式下的布爾指令 155
6.2.11 本節迴顧 156
6.3 條件跳轉 156
6.3.1 條件結構 156
6.3.2 Jcond指令 156
6.3.3 條件跳轉指令類型 157
6.3.4 條件跳轉應用 159
6.3.5 本節迴顧 163
6.4 條件循環指令 163
6.4.1 LOOPZ和LOOPE指令 163
6.4.2 LOOPNZ和LOOPNE指令 164
6.4.3 本節迴顧 164
6.5 條件結構 164
6.5.1 塊結構的IF語句 165
6.5.2 復閤錶達式 167
6.5.3 WHILE循環 168
6.5.4 錶驅動選擇 169
6.5.5 本節迴顧 171
6.6 應用:有限狀態機 172
6.6.1 驗證輸入字符串 172
6.6.2 驗證有符號整數 172
6.6.3 本節迴顧 176
6.7 條件控製流僞指令 176
……
前 言A
本書介紹x86和Intel64處理器的匯編語言編程與架構,適閤作為下述幾類大學課程的教材:
匯編語言編程計算機係統基礎計算機體係結構基礎學生使用Intel或AMD處理器,用Microsoft宏匯編器(Microsoft Macro Assembler,MASM)編程,MASM運行在Microsoft Windows最新的版本上。盡管本書的初衷是作為大學生的編程教材,但它也是計算機體係結構課程的有效補充。本書廣受歡迎,前幾個版本已被翻譯為多種語言。
重點主題 本版所含主題可以自然過渡到講述計算機體係結構、操作係統和編寫編譯器的後續課程:
虛擬機概念指令集架構基本布爾運算指令執行周期內存訪問和握手中斷和輪詢基於硬件的I/O浮點數二進製錶示其他主題則專門針對x86和Intel64架構:
受保護的內存和分頁實地址模式的內存分段16位中斷處理MS-DOS和BIOS係統調用(中斷)浮點單元架構和編程指令編碼本書中的某些例子還可以用於計算機科學課程體係中的後續課程:
搜索與排序算法高級語言結構有限狀態機代碼優化示例第7版的新內容這一版增加瞭對程序示例的討論,添加瞭更多的復習題和關鍵術語,介紹瞭64位編程,降低瞭對子程序庫的依賴性。具體內容如下:
本版前麵的幾章現在包含瞭以64位CPU架構和編程為主的小節,並且還創建瞭子程序庫的64位版本Irvine64。
修改、替換瞭很多復習題和練習,部分題目從章節內移動到該章末尾,且習題分為兩部分:簡答題和算法基礎練習。後者要求學生編寫一小段代碼實現一個目標。
每章有一節為關鍵術語,列齣瞭新的術語和概念,以及新的MASM僞指令和Intel指令。
添加瞭新的編程練習,刪除瞭一些舊習題,並對一些現有的練習進行瞭修改。
本書對作者子程序庫的依賴性大大減低。鼓勵學生自己調用係統函數,並使用Visual Studio調試器單步執行程序。Irvine32和Irvine64鏈接庫可以幫助學生處理輸入/輸齣,但是不強製要求使用它們。
作者錄製的新視頻教程涵蓋瞭本書的基本內容,並已添加到Pearson網站。
本書仍然關注其首要目標,即教授學生編寫並調試機器級程序。它不能代替計算機體係結構的完整教材,但它確實在告訴學生計算機工作原理的基礎上,給齣瞭編寫軟件的第一手經驗。我們認為,理論聯係實際能讓學生更好地掌握知識。在工程課程中,學生構建原型;在計算機體係結構課程中,學生應編寫機器級程序。在這些課程裏,學生都能獲得難忘的經驗,從而有信心在任何OS/麵嚮機器的環境中工作。
保護模式編程是紙版章節(第1章~第13章)的重中之重。因此,學生需要在最新版本的Microsoft Windows環境下創建並運行32位和64位程序。其他4章是電子版,講述16位編程。這些章包含瞭BIOS編程、MS-DOS服務、鍵盤和鼠標輸入、視頻編程和圖形圖像內容。其中一章為磁盤存儲基礎,還有一章為高級DOS編程技術。
子程序庫 本書為學生提供瞭三個版本的子程序庫,用於基本輸入/輸齣、模擬、計時和其他有用的任務。Irvine32和Irvine64鏈接庫運行於保護模式。16位版本的鏈接庫(Irvine16.lib)運行於實地址模式,且隻用於第14章~第17章。這些庫的完整源代碼見於配套的網站。鏈接庫是為瞭使用方便,而不是為瞭阻止學生學習如何自行對輸入–輸齣編程。鼓勵學生創建自己的鏈接庫。
所含軟件與示例 所有示例程序均在Microsoft Visual Studio 2012下,用Microsoft Macro Assembler Version 11.0進行瞭驗證。此外,還提供瞭批處理文件允許學生用Windows命令行匯編和運行應用程序。第14章中的32位C++應用程序已用Microsoft Visual C++ .NET測試。本書的內容更新與勘誤參見配套的網站,其中包括瞭一些額外的編程項目,老師可以在章節結束的時候布置給學生。
總體目標本書的以下目標旨在提高學生對匯編語言相關知識的興趣並拓展知識麵:
Intel和AMD處理器架構與編程;實地址模式和保護模式編程;匯編語言僞指令、宏、運算符與程序結構;編程方法,展示瞭如何用匯編語言創建係統級軟件工具和應用程序;計算機硬件操作;匯編語言程序、操作係統和其他應用程序之間的交互作用。
本書的目標之一是幫助學生以機器級的思維方式來處理編程問題。將CPU視為交互工具,學習盡可能直接地監控其操作是很重要的。調試器是程序員最好的朋友,不僅可以捕捉錯誤,還可以用作學習CPU和操作係統的教學工具。我們鼓勵學生探查高級語言的內部機製,並能意識到大多數編程語言都被設計為可移植的,因此,也獨立於其運行的主機。除瞭短小的示例外,本書還有幾百個可運行的程序來演示書中講述的指令和思想。本書結尾有參考資料,包括MS-DOS中斷和指令助記符指南。
背景知識 讀者應至少能熟練使用一種高級語言進行編程,比如Python、Java、C或C++。本書有一章涉及C++接口,因此,如果手邊有編譯器將會非常有幫助。本書不僅已經用於計算機科學和管理信息係統專業課堂,而且還用於其他工程課程。
特點完整的程序清單 配套的網站包含瞭補充資料、學習指南,以及本書全部示例的源代碼。本書還提供瞭豐富的鏈接庫,其中包括30多個過程,可以簡化用戶輸入–輸齣、數字處理、磁盤和文件處理,以及字符串處理。課程初期,學生可以用這個鏈接庫來改進自己編寫的程序。之後,學生可以自行編寫過程並將它們添加到鏈接庫中。
編程邏輯 本書用兩章的篇幅重點介紹瞭布爾邏輯和位操作,並且有意識地嘗試將高級編程邏輯與底層機器細節對應起來。這有助於學生創建更有效的實現,且有助於他們更好地理解編譯器是如何生成目標代碼的。
硬件和操作係統概念 本書前兩章介紹基礎硬件和數據錶示概念,包括二進製數、CPU架構、狀態標誌和內存映射。概述硬件和以曆史的角度審視Intel處理器係列可以幫助學生更好地理解其目標計算機係統。
結構化程序設計方法 從第5章開始,關注重點為過程和功能分解。同時,提供瞭更復雜的編程練習,要求學生在編碼之前把設計作為重點。
Java字節碼和Java虛擬機 第8章 匯編語言:基於x86處理器(原書第7版) 下載 mobi epub pdf txt 電子書 格式
匯編語言:基於x86處理器(原書第7版) 下載 mobi pdf epub txt 電子書 格式 2024
匯編語言:基於x86處理器(原書第7版) 下載 mobi epub pdf 電子書很好的書,正好京東有活動,就買瞭。
評分可以的
評分速度很快,然後想說 這真的是正版嗎,各種疑惑
評分這種古老的語言,要學懂還是有睏難的。慢慢看吧
評分書不錯,買瞭很多,以後慢慢看
評分內容比較深奧,
評分質量一般,書麵很多劃痕,內容很好啊!
評分如果我用這段話來評價,說明這款産品沒問題,至少85分以上。
評分此用戶未填寫評價內容
匯編語言:基於x86處理器(原書第7版) mobi epub pdf txt 電子書 格式下載 2024