《普通高等教育“十一五”國家級規劃教材:匯編語言程序設計(第4版)》以Intel80x86指令系統和MASM6.x為主體,共10章,分為基礎和提高兩部分。《普通高等教育“十一五”國家級規劃教材:匯編語言程序設計(第4版)》并配有電子課件、習題解答/源代碼等教學資源有利于學生們的學和練。
《普通高等教育“十一五”國家級規劃教材:匯編語言程序設計(第4版)》可作為高等院校“匯編語言程序設計”課程的教材或參考書。本書內容廣博、語言淺顯、結構清晰、實例豐富,也適合電子信息、自動控制等專業的高校學生和成教學生、計算機應用開發人員、深入學習微機應用技術的普通讀者閱讀。
第1章 匯編語言基礎知識
1.1 計算機系統概述
1.1.1 計算機的硬件
1.1.2 計算機的軟件
1.1.3 計算機的程序設計語言
1.2 數據表示
1.2.1 數制
1.2.2 編碼’
1.2.3 有符號數的表示法
1.2.4 二進制數運算
1.3 Intel 80x86系列微處理器
1.3.1 16位80x86微處理器
1.3.2 IA.32微處理器
1.3.3 Intel 64處理器
1.4 微型計算機(PC)系統
1.5 8086微處理器
1.5.1 8086的功能結構
1.5.2 8086的寄存器
1.5.3 8086的存儲器組織
1.6 8086的尋址方式
1.6.1 8086的機器代碼格式
1.6.2 立即數尋址方式
1.6.3 寄存器尋址方式
1.6.4 存儲器尋址方式
習題l
第2章 8086的指令系統
2.1 數據傳送類指令
2.1.1 通用數據傳送指令
2.1.2 堆棧操作指令
2.1.3 標志傳送指令
2.1.4 地址傳送指令
2.2 算術運算類指令
2.2.1 狀態標志
2.2.2 加法指令
2.2.3 減法指令
2.2.4 乘法指令
2.2.5 除法指令
2.2.6 符號擴展指令
2.2.7 十進制調整指令
2.3 位操作類指令
2.3.1 邏輯運算指令
2.3.2 移位指令
2.3.3 循環移位指令
2.4 控制轉移類指令
2.4.1 無條件轉移指令
2.4.2 條件轉移指令
2.4.3 循環指令
2.4.4 子程序指令
2.4.5 中斷指令
2.5 處理機控制類指令
習題2
第3章 匯編語言程序格式
3.1 匯編語言程序的開發
3.1.1 匯編語言程序的語句格式
3.1.2 匯編語言的程序格式
3.1.3 匯編語言程序的開發過程
3.1.4 DOS系統功能調用
3.2 參數、變量和標號
3.2.1 數值型參數
3.2.2 變量定義偽指令
3.2.3 變量和標號的屬性
3.3 程序段的定義和屬性
3.3.1 DOS的程序結構
3.3.2 簡化段定義的格式
3.3.3 完整段定義的格式
3.4 復雜數據結構
3.4.1 結構
3.4.2 記錄
習題3
第4章 基本匯編語言程序設計
4.1 順序程序設計
4.2 分支程序設計
4.2.1 單分支結構
4.2.2 雙分支結構
4.2.3 多分支結構
4.3 循環程序設計
4.3.1 計數控制循環
4.3.2 條件控制循環
4.3.3 多重循環
4.3.4 串操作類指令
4.4 子程序設計
4.4.1 過程定義偽指令
4.4.2 子程序的參數傳遞
4.4.3 子程序的嵌套、遞歸與重入
4.4.4 子程序的應用
習題4
第5章 高級匯編語言程序設計
5.1 高級語言特性
5.1.1 條件控制偽指令
5.1.2 循環控制偽指令
5.1.3 過程聲明和過程調用偽指令
5.2 宏結構程序設計
5.2.1 宏匯編
5.2.2 重復匯編
5.2.3 條件匯編
5.3 模塊化程序設計
5.3.1 源程序文件的包含
5.3.2 目標代碼文件的連接
5.3.3 子程序庫的調入
5.4 輸入/輸出程序設計
5.4.1 輸入/輸出指令
5.4.2 程序直接控制輸入/輸出
5.4.3 程序查詢輸入/輸出
5.4.4 中斷服務程序
習題5
第6章 32位指令及其編程
6.1 32位指令運行環境
6.1.1 寄存器
6.1.2 尋址方式
6.1.3 機器代碼格式
6.2 32位擴展指令
6.2.1 數據傳送類指令
6.2.2 算術運算類指令
6.2.3 位操作類指令
6.2.4 串操作類指令
6.2.5 控制轉移類指令
6.3 DOS下的32位程序設計
6.4 32位新增指令
6.4.1 80386新增指令
6.4.2 80486新增指令
6.4.3 Pentium新增指令
6.4.4 Pentium Pro新增指令
6.5 用匯編語言編寫32位Windows應用程序
6.5.1 32位Windows應用程序的特點
6.5.2 32位Windows控制臺程序
6.5.3 Windows應用程序的開發
6.5.4 創建消息窗口
6.5.5 創建窗口應用程序
習題6
第7章 匯編語言與C/C++的混合編程
7.1 Turbo C嵌人匯編方式
7.1.1 嵌人匯編語句的格式
7.1.2 匯編語句訪問C語言的數據
7.1.3 嵌人匯編的編譯過程
7.2 rurbo c模塊連接方式
7.2.1 混合編程的約定規則
7.2.2 匯編模塊的編譯和連接
7.2.3 混合編程的參數傳遞
7.2.4 匯編語言程序對C語言程序的調用
7.3 匯編語言在Visual c++中的應用
7.3.1 嵌入匯編語言指令
7.3.2 調用匯編語言過程
7.3.3 使用匯編語言優化C++代碼
7.3.4 使用Visual C++開發匯編語言
程序
習題7
第8章 80x87浮點指令及其編程
8.1 浮點數據格式
8.1.1實數和浮點格式
8.1.2 80x87的數據格式
8.2 浮點寄存器
8.3 浮點指令的程序設計
8.3.1浮點傳送類指令
8.3.2算術運算類指令
8.3.3超越函數類指令
8.3.4浮點比較類指令
8.3.5 FPu控制類指令
習題8
第9章 多媒體指令及其編程
9.1 MMx指令系統
9.1.1 MMX的數據結構
9.1.2 MMX指令
9.1.3 MMX指令的程序設計
9.2 SSE指令系統
9.2.1 SIMD浮點指令
9.2.2 SIMD整數指令
9.2.3高速緩存優化處理指令
9.2.4 SSE指令的程序設計
9.3 SSE2指令系統
9.3.1 SSE2的數據類型
9.3.2 SSE2浮點指令
9.3.3 SSE2擴展指令
9.3.4 SSE2指令的程序設計
9.4 SSE3指令系統
9.4.1 SSE3指令
9.4.2 SSE3指令的程序設計
習題9
第10章 64位指令簡介
10.1 64位方式的運行環境
10.2 64位方式的指令
附錄A 調試程序DEBUG
附錄B 調試程序CodeView
附錄C 匯編程序MASM的偽指令和操作符
附錄D 80x86整數指令系統
附錄E 常見匯編錯誤信息
附錄F 輸入/輸出子程序庫
參考文獻
1.80386
1985年,Intel 80x86 CPU進入第3代80386。Intel 80386處理器采用32位結構,數據總線32位,地址總線也是32位,可尋址4GB(千兆字節)主存,時鐘頻率有16MHz、25MHz和33MHz。80386除保持與80286兼容外,又提供了虛擬8086工作方式(Virtual 8086 Mode)。虛擬8086方式是在保護方式下的一種特殊狀態,類似8086工作方式但又接受保護方式的管理,能夠模擬多個8086處理器。80386指令系統在兼容原16位80286指令系統基礎上,全面升級為32位,還新增了有關位操作、條件設置等指令。
2.80486
1989年,Intel公司出品80486 CPU。從結構上來說,80486把80386處理器與80387數學協處理器和8KB高速緩沖存儲器(Cache)集成在一個芯片上,使處理器的性能大大提高。
傳統上,中央處理單元CPU主要是整數處理器。為了協助處理器處理浮點數據(實數),Intel設計有數學協處理器,后被稱為浮點處理單元FPU(Floating—Point Unit)。配合8086和8088整數處理器的數學協處理器是8087,配合80286的是80287,80386采用80387。而從Intel 80486開始,FPU已經被集成到一個處理器當中,80284指令系統也就包含了浮點指令,能夠直接支持對浮點數據的處理。同時,80486新增了用于多處理器和內部Cache操作的6條指令。
3.Pentium系列
Pentium芯片原來應該被稱為80586處理器,因為數字很難進行商標版權保護的緣故而特意取名。其實,Pentium源于希臘文"pente"(數字5),加上后綴—ium(化學元素周期表中命名元素常用的后綴)變化而來。同時,Intel公司為其取了一個響亮的中文名稱:奔騰,并進行了商標注冊,形成了系列產品。
Intel公司于1993年制造成功Pentium,于1995年正式推出Pentium Pro(原來被稱為P6,中文名稱為“高能奔騰”)。在處理器結構上,Pentium主要引入了超標量(Superscalar)技術,Pentium Pro主要采用了動態執行技術來提升處理器性能。它們增加了若干整數指令,完善了浮點指令。
前面所述的各代IA—32處理器,都新增有若干實用指令,但非常有限。為了順應微機向多媒體和通信方向發展的趨勢,Intel公司及時在其處理器中加入了多媒體擴展MMX(MutliMedia eXtension)技術。MMX技術于1996年正式公布,它在IA—32指令系統中新增了57條整數運算多媒體指令,可以用這些指令對圖像、音頻、視頻和通信方面的程序進行優化,使微型機對多媒體的處理能力較原來有了大幅度提升。MMX指令應用于Pentium處理器就是Pentium MMX(多能奔騰)。MMX指令應用于Pentium Pro處理器就是Pentium Ⅱ,它于1997年推出。
……