匯編語言程序設計
-
【作 者】葛建梅 等編著
【I S B N 】978-7-5084-2938-9
【責任編輯】吳萍
【適用讀者群】本科
【出版時間】2005-08-01
【開 本】16開本
【裝幀信息】平裝(光膜)
【版 次】2005年08月第1版
【頁 數】292
【千字數】
【印 張】
【定 價】¥26
【叢 書】21世紀高等院校計算機科學與技術規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書主要以Intel 8086微處理器為背景,并兼顧Intel 80x86及Pentium微處理器,介紹了匯編語言程序設計的概念、原理、方法和技術。全書共分10章,主要內容包括:微機基礎知識、尋址方式、8086指令系統、80x86、Pentium增強和擴展指令、程序設計方法、高級匯編技術、系統功能調用、輸入輸出程序設計和模塊化程序設計及上機操作方法。每章配有適量習題,書后附有上機實驗指導和習題答案。
本書結構清晰、內容豐富、實例恰當,突出了匯編語言程序設計的一般方法和技巧、方便教師教學和讀者學習。可作為計算機專業及計算機相關專業本、專科“匯編語言程序設計”課程的教材,也可作為從事相關技術工作人員的參考書。
“匯編語言程序設計”是計算機專業的重要基礎課,它不僅是微型計算機原理、操作系統、計算機接口技術等其他核心課程的先行課,而且對于訓練學生掌握程序設計技術和程序調試技術均能起到重要作用。
匯編語言是用戶能夠利用計算機硬件特性,直接控制硬件的程序設計語言。利用匯編語言可以編寫時間和空間效率較高的程序,計算機的一些系統程序就是使用匯編語言編寫的。在某些領域,匯編語言仍然是必不可少的編程語言之一。由此決定了匯編語言程序設計是計算機專業及相關專業人員必須接受的專業基礎訓練之一,因此,作為計算機專業的學生,學習和掌握匯編語言程序設計方法是非常必要的。我們在總結多年教學實踐經驗的基礎上,編寫了這本《匯編語言程序設計》教程。
采用Intel 80x86/Pentium系列微處理器的微型計算機在國內得到了廣泛使用,為了適應學生的認知規律,由淺入深、循序漸進地掌握匯編語言程序設計方法與技巧,本書主要以Intel 8086微處理器為基礎和線索,系統地介紹了Intel 8086微處理器的特點、匯編語言程序結構、數據組織、簡單的匯編語言程序設計、復雜的匯編程序設計和高級匯編技術。在詳細介紹以上知識的基礎上,在相應章節還擴充了適合Intel 80x86/Pentium系列微處理器的相關知識,如Intel 80486及Pentium微處理器的結構、存儲管理、適用于Intel 80x86/Pentium系列微處理器的尋址方式、增強和擴展的指令等,為日后采用Intel 80x86/Pentium系列微機進行匯編語言程序設計奠定了堅實的基礎。
本書共分10章。第1章是基礎知識,概括地介紹了匯編語言和計算機中數的表示;第2章介紹了Intel 8086、80486及Pentium系列微處理器的結構及存儲器的組成與原理;第3章詳細介紹了尋址方式和指令系統中常用指令的格式、功能及使用方法,這些內容是利用匯編語言進行程序設計的基礎;第4章主要討論了匯編語句、偽指令和匯編語言的程序結構;第5~8章系統地介紹了順序、分支、循環、子程序、串操作和高級匯編語言程序設計的方法,這是匯編語言程序設計的核心內容;第9章主要介紹了中斷和輸入/輸出程序設計方法;第10章介紹了模塊化程序設計方法。每章配有適量的習題,例題和習題均已調試通過。另外,為方便教學,本書還配有實驗指導,共設有七個實驗,給出了實驗目的、要求和內容,并設置了設計和驗證兩種類型的實驗題,以利讀者在鞏固書本知識的基礎上,培養創新素質。
本書由葛建梅、孫海、邵珠富等編著。葛建梅編寫了第3章、第4章,并負責全書的組織策劃、修改補充和統稿定稿工作;孫海編寫了第1章、第8章、第9章、第10章和DEBUG綜合實驗;邵珠富編寫了第5章、第7章;劉艷編寫了第2章和第6章;魯靜軒輔助編寫了3.7節、4.6節中的內容,并完成了本書全部程序的調試與驗證;任冬梅編寫了上機實驗指導中的實驗一到實驗六和附錄。苗巍、張淑英、尹健慧、張玲玲、王成喜、黃耀霖、薛京麗等同志參與了資料整理、討論編寫大綱工作。
由于編者水平有限,書中難免存在疏漏,敬請同行專家和廣大讀者指正。
第1章 基礎知識 1
1.1 匯編語言程序設計概述 1
1.1.1 機器語言 1
1.1.2 匯編語言 1
1.1.3 為什么要學習和使用匯編語言 2
1.2 進位計數制及其相互轉換 2
1.2.1 進位計數制 2
1.2.2 各種數制間的相互轉換 4
1.3 計算機中數的表示 6
1.3.1 原碼表示法 7
1.3.2 補碼表示法 7
1.3.3 反碼表示法 8
1.3.4 移碼表示法 8
1.3.5 補碼的加法和減法運算 8
1.3.6 定點數和浮點數 9
1.4 計算機中字符的表示 11
1.4.1 ASCII碼 11
1.4.2 BCD碼 12
習題 12
第2章 IBM PC計算機系統結構 14
2.1 Intel8086微處理器的功能結構 14
2.1.1 執行部件與總線接口部件 16
2.1.2 Intel8086CPU寄存器的結構 19
2.1.3 標志寄存器(FR)及其用途 20
2.2 存儲器 21
2.2.1 主存儲器的組成 21
2.2.2 8086存儲器的組織 22
2.3 堆棧(Stack) 24
2.3.1 堆棧的構造 24
2.3.2 8086堆棧的組織 25
2.3.3 堆棧操作 25
2.4 Intel80486和Pentium微處理器的結構及存儲管理 26
2.4.1 80486和Pentium微處理器的結構 26
2.4.2 80486和Pentium微處理器寄存器結構 30
2.4.3 80486和Pentium存儲管理 35
習題 35
第3章 指令系統和尋址方式 37
3.1 匯編指令格式 37
3.2 尋址方式 38
3.2.1 立即尋址 38
3.2.2 寄存器尋址 39
3.2.3 存儲器尋址 39
3.2.4 隱含固定尋址 44
3.2.5 80x86擴充的尋址方式 45
3.2.6 轉移地址尋址方式 46
3.3 8086指令系統 47
3.3.1 指令描述約定 47
3.3.2 數據傳送指令 48
3.3.3 算術運算指令 54
3.3.4 位操作指令 67
3.3.5 處理器控制指令 73
3.4 80x86及Pentium擴展指令 74
3.4.1 80286增強和擴展指令 74
3.4.2 80386增強和擴展指令 75
3.4.3 80486新增指令 78
3.4.4 Pentium新增指令 79
習題 79
第4章 匯編語言與源程序結構 82
4.1 匯編語言源程序與匯編程序 82
4.2 匯編語言語句種類及其格式 83
4.2.1 指令語句 84
4.2.2 偽指令語句 84
4.2.3 標識符 85
4.3 匯編語言數據與運算符 85
4.3.1 常量 85
4.3.2 變量 87
4.3.3 標號 90
4.3.4 表達式和運算符 90
4.4 偽指令 97
4.4.1 數據定義偽指令 98
4.4.2 符號定義偽指令 98
4.4.3 段結構偽指令 99
4.4.4 源程序開始和結束偽指令 101
4.4.5 定位偽指令ORG與匯編地址計數器 102
4.4.6 過程定義偽指令PROC/ENDP 103
4.5 源程序結構模式 103
4.5.1 用INT 21H返回DOS的程序結構模式 103
4.5.2 用過程返回DOS的程序結構模式 104
4.6 匯編語言程序的上機過程 105
4.6.1 編輯 105
4.6.2 匯編 106
4.6.3 連接 107
4.6.4 調試與運行 108
習題 110
第5章 程序設計基礎 112
5.1 程序設計概述 112
5.2 順序結構程序設計 112
5.3 分支結構程序設計 114
5.3.1 轉移指令 115
5.3.2 分支程序設計 119
5.4 循環結構程序設計 128
5.4.1 循環程序的結構 128
5.4.2 循環指令 130
5.4.3 循環控制方法和程序舉例 132
習題 140
第6章 子程序設計及系統調用 141
6.1 調用程序與子程序 141
6.2 調用與返回指令 141
6.3 子程序設計 143
6.3.1 子程序定義 143
6.3.2 子程序的調用與返回 143
6.3.3 現場保護與恢復 146
6.3.4 參數的傳遞方式 147
6.3.5 子程序調用舉例 151
6.3.6 子程序的嵌套與遞歸 155
6.4 DOS系統功能調用 157
6.4.1 系統功能調用方法 157
6.4.2 常用的DOS功能調用 157
習題 159
第7章 非數值運算 161
7.1 串操作 161
7.1.1 串操作指令 161
7.1.2 串操作應用舉例 164
7.2 表的處理 170
7.2.1 表的構造 170
7.2.2 表的插入與刪除 172
7.2.3 排序 176
7.2.4 查找 181
7.3 代碼轉換 182
7.3.1 二進制數與ASCII碼間的相互轉換 183
7.3.2 二進制數與BCD碼間的相互轉換 184
習題 188
第8章 高級語言匯編技術 190
8.1 宏匯編 190
8.1.1 宏定義 190
8.1.2 宏調用和宏展開 191
8.1.3 宏調用中的參數使用 192
8.1.4 宏嵌套 194
8.1.5 宏匯編中的偽指令 195
8.1.6 宏庫 196
8.1.7 宏與子程序的區別 198
8.2 重復匯編 198
8.2.1 使用REPT偽指令的重復匯編結構 198
8.2.2 使用IRP偽指令的重復匯編結構 199
8.2.3 使用IRPC偽指令的重復匯編結構 199
8.3 條件匯編偽指令 200
習題 202
第9章 輸入/輸出程序設計 203
9.1 輸入/輸出指令 203
9.1.1 I/O端口尋址 203
9.1.2 輸入/輸出指令 204
9.2 輸入/輸出控制方式 207
9.2.1 程序控制方式 207
9.2.2 中斷控制方式 210
9.2.3 直接存儲器存取方式 210
9.3 中斷 212
9.3.1 中斷的概念 212
9.3.2 中斷源、中斷類型碼和中斷優先級 213
9.3.3 中斷矢量表 215
9.3.4 中斷過程 216
9.3.5 軟中斷及有關的中斷指令 219
9.4 BIOS中斷調用 219
9.4.1 鍵盤輸入中斷調用 220
9.4.2 顯示器輸出控制中斷調用 221
9.4.3 時間中斷調用 225
9.4.4 中斷調用程序舉例 225
習題 228
第10章 模塊化程序設計 229
10.1 模塊化程序設計概述 229
10.1.1 模塊化程序設計概念 229
10.1.2 模塊化程序設計的優點 229
10.1.3 模塊劃分的原則和方法 229
10.2 段的定義 230
10.2.1 定位類型 231
10.2.2 組合類型 231
10.2.3 類別 232
10.3 模塊間的通信 232
10.4 模塊的連接 234
10.4.1 源程序級間的裝配連接 234
10.4.2 目標文件級間的裝配連接 235
10.5 源程序綜合舉例 237
習題 241
上機實驗指導 242
附錄A DOS功能調用INT 21H 265
附錄B BIOS中斷 271
附錄C MASM 5.0宏匯編出錯信息 276
附錄D DEBUG命令表 282
附錄E ASCII碼表 283
參考文獻 284
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]
- 簡單易懂的Python入門教程 [[日]大澤文孝 著]