圖書內容
本書是普通高等教育“十一五”國家級規劃教材,是教育部-微軟精品課程教學成果。本書以Intel 80x86指令系統和MASM 6.x為主體,共10章,分為基礎和提高兩部分。前5章作為基礎部分,以當前“彙編語言程式設計”課程的教學為目標,講解16位基本整數指令及其彙編語言程式設計的知識,包括:彙編語言程式設計基礎知識,8086指令詳解,MASM偽指令和操作符,程式格式,程式結構及其設計方法。後5章為提高部分,介紹彙編語言程式設計的深入內容和實際套用知識,包括:32位80x86 CPU的整數指令系統及其編程,彙編語言與C/C++混合編程,80x87 FPU浮點指令系統及其編程,多媒體擴展指令系統及其編程,64位指令簡介。 本書可作為高等院校“彙編語言程式設計”課程的教材或參考書。本書內容廣博、語言淺顯、結構清晰、實例豐富,也適合電子信息、自動控制等專業的高校學生和成教學生、計算機套用開發人員、深入學習微機套用技術的普通讀者閱讀。
圖書目錄
第1章 彙編語言基礎知識(1)
1.1 計算機系統概述(1)
1.1.1 計算機的硬體(1)
1.1.2 計算機的軟體(3)
1.1.3 計算機的程式設計語言(3)
1.2 數據表示(5)
1.2.1 數制(5)
1.2.2 編碼(6)
1.2.3 有符號數的表示法(8)
1.2.4 二進制數運算(9)
1.3 Intel80x86系列微處理器(10)
1.3.1 16位80x86微處理器(10)
1.3.2 IA32微處理器(10)
1.3.3 Intel64處理器(12)
1.4 微型計算機(PC)系統(12)
1.5 8086微處理器(15)
1.5.1 8086的功能結構(15)
1.5.2 8086的暫存器(16)
1.5.3 8086的存儲器組織(18)
1.6 8086的定址方式(20)
1.6.1 8086的機器代碼格式(21)
1.6.2 立即數定址方式(22)
1.6.3 暫存器定址方式(23)
1.6.4 存儲器定址方式(23)
習題1 (25)
第2章 8086的指令系統(27)
2.1 數據傳送類指令(27)
2.1.1 通用數據傳送指令(28)
2.1.2 堆疊操作指令(30)
2.1.3 標誌傳送指令(31)
2.1.4 地址傳送指令(32)
2.2 算術運算類指令(32)
2.2.1 狀態標誌(32)
2.2.2 加法指令(34)
2.2.3 減法指令(35)
2.2.4 乘法指令(36)
2.2.5 除法指令(37)
2.2.6 符號擴展指令(38)
2.2.7 十進制調整指令(38)
2.3 位操作類指令(41)
2.3.1 邏輯運算指令(41)
2.3.2 移位指令(42)
2.3.3 循環移位指令(43)
2.4 控制轉移類指令(44)
2.4.1 無條件轉移指令(45)
2.4.2 條件轉移指令(46)
2.4.3 循環指令(48)
2.4.4 子程式指令(49)
2.4.5 中斷指令(50)
2.5 處理機控制類指令(52)
習題2 (53)
第3章 彙編語言程式格式(58)
3.1 彙編語言程式的開發(58)
3.1.1 彙編語言程式的語句格式(58)
3.1.2 彙編語言的程式格式(59)
3.1.3 彙編語言程式的開發過程(61)
3.1.4 DOS系統功能調用(67)
3.2 參數、變數和標號(69)
3.2.1 數值型參數(69)
3.2.2 變數定義偽指令(71)
3.2.3 變數和標號的屬性(75)
3.3 程式段的定義和屬性(77)
3.3.1 DOS的程式結構(77)
3.3.2 簡化段定義的格式(78)
3.3.3 完整段定義的格式(81)
3.4 複雜數據結構(85)
3.4.1 結構(85)
3.4.2 記錄(86)
習題3 (87)
第4章 基本彙編語言程式設計(90)
4.1 順序程式設計(90)
4.2 分支程式設計(91)
4.2.1 單分支結構(91)
4.2.2 雙分支結構(92)
4.2.3 多分支結構(93)
4.3 循環程式設計(95)
4.3.1 計數控制循環(96)
4.3.2 條件控制循環(97)
4.3.3 多重循環(98)
4.3.4 串操作類指令(99)
4.4 子程式設計(104)
4.4.1 過程定義偽指令(104)
4.4.2 子程式的參數傳遞(106)
4.4.3 子程式的嵌套、遞歸與重入(109)
4.4.4 子程式的套用(111)
習題4 (115)
第5章 高級彙編語言程式設計(118)
5.1 高級語言特性(118)
5.1.1 條件控制偽指令(118)
5.1.2 循環控制偽指令(120)
5.1.3 過程聲明和過程調用偽指令(121)
5.2 宏結構程式設計(124)
5.2.1 宏彙編(124)
5.2.2 重複彙編(129)
5.2.3 條件彙編(130)
5.3 模組化程式設計(132)
5.3.1 源程式檔案的包含(132)
5.3.2 目標代碼檔案的連線(137)
5.3.3 子程式庫的調入(139)
5.4 輸入/輸出程式設計(140)
5.4.1 輸入/輸出指令(141)
5.4.2 程式直接控制輸入/輸出(142)
5.4.3 程式查詢輸入/輸出(143)
5.4.4 中斷服務程式(144)
習題5 (149)
第6章 32位指令及其編程(153)
6.1 32位指令運行環境(153)
6.1.1 暫存器(154)
6.1.2 定址方式(156)
6.1.3 機器代碼格式(157)
6.2 32位擴展指令(158)
6.2.1 數據傳送類指令(158)
6.2.2 算術運算類指令(160)
6.2.3 位操作類指令(161)
6.2.4 串操作類指令(161)
6.2.5 控制轉移類指令(162)
6.3 DOS下的32位程式設計(165)
6.4 32位新增指令(168)
6.4.1 80386新增指令(168)
6.4.2 80486新增指令(171)
6.4.3 Pentium新增指令(172)
6.4.4 PentiumPro新增指令(176)
6.5 用彙編語言編寫32位Windows
應用程式(177)
6.5.1 32位Windows應用程式的
特點(177)
6.5.2 32位Windows控制台程式(178)
6.5.3 Windows應用程式的開發(182)
6.5.4 創建訊息視窗(183)
6.5.5 創建視窗應用程式(184)
習題6 (190)
第7章 彙編語言與C/C++的混合
編程(193)
7.1 TurboC嵌入彙編方式(193)
7.1.1 嵌入彙編語句的格式(194)
7.1.2 彙編語句訪問C語言的
數據(194)
7.1.3 嵌入彙編的編譯過程(195)
7.2 TurboC模組連線方式(196)
7.2.1 混合編程的約定規則(197)
7.2.2 彙編模組的編譯和連線(198)
7.2.3 混合編程的參數傳遞(199)
7.2.4 彙編語言程式對C語言程式的
調用(206)
7.3 彙編語言在VisualC++中的
套用(208)
7.3.1 嵌入彙編語言指令(209)
7.3.2 調用彙編語言過程(212)
7.3.3 使用彙編語言最佳化C++代碼(215)
7.3.4 使用VisualC++開發彙編語言
程式(218)
習題7 (220)
第8章 80x87浮點指令及其編程(223)
8.1 浮點數據格式(223)
8.1.1 實數和浮點格式(223)
8.1.2 80x87的數據格式(225)
8.2 浮點暫存器(227)
8.3 浮點指令的程式設計(229)
·Ⅷ·
8.3.1 浮點傳送類指令(230)
8.3.2 算術運算類指令(232)
8.3.3 超越函式類指令(235)
8.3.4 浮點比較類指令(236)
8.3.5 FPU控制類指令(240)
習題8 (244)
第9章 多媒體指令及其編程(246)
9.1 MMX指令系統(246)
9.1.1 MMX的數據結構(246)
9.1.2 MMX指令(248)
9.1.3 MMX指令的程式設計(255)
9.2 SSE指令系統(257)
9.2.1 SIMD浮點指令(257)
9.2.2 SIMD整數指令(266)
9.2.3 高速快取最佳化處理指令(267)
9.2.4 SSE指令的程式設計(268)
9.3 SSE2指令系統(272)
9.3.1 SSE2的數據類型(272)
9.3.2 SSE2浮點指令(273)
9.3.3 SSE2擴展指令(278)
9.3.4 SSE2指令的程式設計(281)
9.4 SSE3指令系統(282)
9.4.1 SSE3指令(282)
9.4.2 SSE3指令的程式設計(284)
習題9 (285)
第10章 64位指令簡介(287)
10.1 64位方式的運行環境(287)
10.2 64位方式的指令(289)
附錄A 調試程式DEBUG (292)
附錄B 調試程式CodeView (301)
附錄C 彙編程式MASM的偽指令和
操作符(309)
附錄D 80x86整數指令系統(310)
附錄E 常見彙編錯誤信息(316)
附錄F 輸入/輸出子程式庫(319)
參考文獻(321)