x86彙編語言程式設計

《x86彙編語言程式設計》是2020年華中科技大學出版社出版的圖書。

基本介紹

  • 中文名:x86彙編語言程式設計
  • 出版時間:2020年8月1日
  • 出版社:華中科技大學出版社
  • ISBN:9787568063111
內容簡介,圖書目錄,

內容簡介

本書立足於目前使用為廣泛的Intel x8632和x8664系列的CPU、Windows作業系統及Visual Studio 2019開發平台,從彙編語言這種直觀和直接的角度,揭示計算機工作的基本原理、C語言語句和函式的處理過程、程式最佳化的技巧。
全書共分為19章。前5章介紹了彙編語言程式設計的基本知識,包括CPU、記憶體、定址方式和常用機器指令;第6章至第11章介紹了x8632位控制台應用程式設計,包括順序和分支、循環、子程式設計、多模組化程式設計;第12章為中斷和異常處理;第13章是Win32視窗程式設計;第14章至第17章介紹了x87 FPU、MMX、SSE、AVX程式設計;第18章為x8664位彙編程式設計;第19章為上機操作。
本書內容新穎,覆蓋面廣,重點突出,直觀易懂,趣味性強,可供各類高等院校計算機及相關專業作為教材,也可供廣大使用彙編語言的工程技術人員參考。

圖書目錄

1.1什麼是彙編語言(1)
1.1.1機器語言(1)
1.1.2彙編語言(2)
1.2為什麼學習彙編語言(4)
1.3如何學習彙編語言(7)
1.4彙編語言源程式舉例(9)
1.5計算機中信息編碼的奧秘(12)
1.6使用符號的說明(14)
習題1(15)
上機實踐1(16)
第2章Intel中央處理器(17)
2.1Intel公司微處理器的發展史(17)
2.2Intel x86微處理器結構(19)
2.3執 行 部 件(20)
2.3.132位CPU中的通用暫存器(21)
2.3.2通用暫存器套用示例(22)
2.4標誌暫存器(23)
2.4.1條件標誌位(24)
2.4.2控制標誌位(26)
2.4.3系統標誌位(27)
2.5指令預取部件和指令解碼部件(27)
2.6分段部件和分頁部件(28)
2.7x86的三種工作方式(30)
2.8Intel公司酷睿微體系結構(31)
習題2(33)
上機實踐2(34)
第3章主存儲器及數據在計算機內的表示形式(35)
3.1主存儲器(35)
3.1.1數據存儲的基本形式(35)
3.1.2數據地址的類型及轉換(36)
3.2數值數據在計算機內的表示形式(37)
3.2.1有符號數和無符號數表示法(37)
3.2.2BCD碼(38)
3.3字元數據在計算機內的表示形式(39)
3.4數據段定義(39)
3.4.1數據定義偽指令(40)
3.4.2表達式(40)
3.4.3彙編地址計數器(42)
3.4.4數據段定義示例(43)
3.5主存儲器分段管理(44)
3.6主存儲器物理地址的形成(45)
3.6.18086和x8632實方式下物理地址的形成(45)
3.6.2保護方式下物理地址的形成(47)
習題3(50)
上機實踐3(51)
第4章定址方式(53)
4.1定址方式概述(53)
4.2立即定址(54)
4.3暫存器定址(56)
4.4直接定址(57)
4.4.1直接定址的基本概念(57)
4.4.2直接定址的用法示例(58)
4.5暫存器間接定址(60)
4.5.1暫存器間接定址的基本用法(60)
4.5.2暫存器間接定址與C語言指針的比較(62)
4.6變址定址(63)
4.7基址加變址定址(64)
4.8定址方式綜合舉例(66)
4.9x86機器指令編碼規則(68)
4.108086/80386的定址方式(73)
習題4(74)
上機實踐4(77)
第5章常用機器指令(79)
5.1通用機器指令概述(79)
5.2數據傳送指令(80)
5.2.1一般數據傳送指令(80)
5.2.2帶條件的數據傳送指令(82)
5.2.3堆疊操作指令(83)
5.2.4標誌暫存器傳送指令(86)
5.2.5地址傳送指令(88)
5.3算術運算指令(89)
5.3.1加法指令(90)
5.3.2減法指令(91)
5.3.3乘法指令(92)
5.3.4除法指令(94)
5.3.5符號擴展指令(95)
5.4邏輯運算指令(95)
5.5移位指令(97)
5.7位操作和位元組操作指令(99)
5.8標誌位控制指令和雜項指令(100)
5.9I/O指令(100)
習題5(102)
上機實踐5(103)
第6章順序和分支程式設計(105)
6.1概述(105)
6.2程式中的偽指令(107)
6.2.1處理器選擇偽指令(107)
6.2.2存儲模型說明偽指令(108)
6.2.3段定義及程式結束偽指令(109)
6.3轉移指令(110)
6.3.1轉移指令概述(110)
6.3.2簡單條件轉移指令(110)
6.3.3無符號條件轉移指令(111)
6.3.4有符號條件轉移指令(113)
6.3.5無條件轉移指令(114)
6.4簡單分支程式設計(115)
6.4.1C語言的if語句與彙編語句的對應關係(115)
6.4.2分支程式設計示例(117)
6.4.3分支程式設計注意事項(120)
6.5多分支程式設計(121)
6.5.1多分支向無分支的轉化(121)
6.5.2switch語句的編譯(123)
6.6條件控制流偽指令(125)
習題6(128)
上機實踐6(129)
第7章循環程式設計(131)
7.1循環程式(131)
7.1.1循環程式的結構(131)
7.1.2循環控制方法(132)
7.1.3循環控制指令(134)
7.2單重循環程式設計(137)
7.3多重循環程式設計(139)
7.4循環程式中的細節分析(141)
7.5與C循環程式反彙編的比較(145)
7.6循環控制偽指令(148)
習題7(150)
上機實踐7(151)
第8章子程式設計(152)
8.1子程式的概念(152)
8.2子程式的基本用法(153)
8.2.1子程式的定義(153)
8.2.2子程式的調用和返回(154)
8.2.3在主程式與子程式之間傳遞參數(155)
8.2.4子程式調用現場的保護(157)
8.2.5子程式設計應注意的問題(158)
8.3子程式套用示例(159)
8.3.1字元串的比較(159)
8.3.2數串轉換(161)
8.3.3串數轉換(163)
8.3.4自我修改返回地址的子程式(165)
8.3.5自我修改的子程式(168)
8.4C語言程式中函式的運行機理(169)
8.5彙編語言中子程式的高級用法(172)
8.5.1局部變數的定義和使用(173)
8.5.2子程式的原型說明、定義和調用(174)
8.5.3子程式的高級用法舉例(176)
8.6遞歸子程式的設計(177)
習題8(180)
上機實踐8(181)
第9章串處理程式設計(183)
9.1串操作指令簡介(183)
9.2串傳送指令(185)
9.3串比較指令(187)
9.4串搜尋指令(189)
9.5向目的串中存數指令(190)
9.6從源串中取數指令(191)
習題9(192)
上機實踐9(192)
第10章複合數據類型的定義和使用(194)
10.1結構體(194)
10.1.1結構體的定義(194)
10.1.2結構變數的定義(195)
10.1.3結構變數的訪問(196)
10.1.4結構信息的自動計算(198)
10.2結構變數的數據存儲(200)
10.2.1彙編語言中結構變數的存儲(200)
10.2.2與C語言結構變數存儲的差異(201)
10.3聯合體(202)
習題10(203)
上機實踐10(203)
第11章程式設計的其他方法(205)
11.1彙編語言多模組化程式設計(205)
11.2C語言程式和彙編語言程式的混合(209)
11.2.1函式的申明和調用(209)
11.2.2變數的申明和調用(210)
11.3內嵌彙編(211)
11.4模組程式設計中的注意事項(213)
11.5宏功能程式設計(214)
11.5.1宏定義(214)
11.5.2宏調用(215)
11.5.3宏指令與子程式的比較(216)
11.6執行檔的格式(217)
習題11(223)
上機實踐11(224)
第12章中斷和異常處理(225)
12.1中斷與異常的基礎知識(225)
12.1.1中斷和異常的概念(225)
12.1.2中斷描述符表(227)
12.1.3中斷和異常的回響過程(229)
12.1.4軟中斷指令(230)
12.2Windows中的結構化異常處理(231)
12.2.1編寫異常處理函式(231)
12.2.2異常處理程式的註冊(232)
12.2.3全局異常處理程式的註冊(234)
12.3C語言異常處理程式反彙編分析(236)
習題12(239)
上機實踐12(239)
第13章Win32視窗程式設計(242)
13.1Win32視窗程式設計基礎 (242)
13.1.1視窗程式運行的基本過程(242)
13.1.2Windows訊息(245)
13.1.3Win32視窗程式的開發環境(247)
13.2Win32視窗應用程式的結構(248)
13.2.1主程式(248)
13.2.2視窗主程式(248)
13.2.3視窗訊息處理程式(249)
13.3視窗應用程式開發實例(250)
13.3.1不含資源的視窗程式(250)
13.3.2包含選單和對話框的視窗程式(253)
13.4與C語言開發的視窗程式比較(260)
習題13(264)
上機實踐13(264)
第14章x87 FPU程式設計(265)
14.1浮點數據(265)
14.1.1浮點數據在機內的表示形式(265)
14.1.2浮點類型變數的定義(267)
14.2x87 FPU的暫存器(268)
14.2.1x87 FPU數據暫存器(268)
14.2.2x87 FPU其他暫存器(269)
14.3x87 FPU指令(271)
14.4浮點數處理程式示例(274)
習題14(277)
上機實踐14(277)
第15章MMX程式設計(278)
15.1MMX技術簡介(278)
15.2MMX指令簡介(280)
15.3MMX編程示例(282)
15.4使用C語言編寫MMX應用程式(285)
習題15(286)
上機實踐15(287)
第16章SSE程式設計(288)
16.1SSE技術簡介(288)
16.2SSE指令簡介(289)
16.2.1組合和標量單精度浮點指令(290)
16.2.2SSE 64位SIMD整數指令(292)
16.2.3MXCSR狀態管理指令(293)
16.2.4快取控制指令(293)
16.3SSE2及後續版本的指令簡介(293)
16.3.1組合雙精度浮點數和標量雙精度浮點數指令(294)
16.3.264位和128位整數指令(295)
16.4SSE編程示例(296)
16.5使用C語言編寫SSE應用程式(297)
習題16(299)
上機實踐16(300)
第17章AVX程式設計(301)
17.1AVX技術簡介(301)
17.2AVX指令簡介(302)
17.2.1新指令(302)
17.2.2功能擴展指令(303)
17.3AVX編程示例(304)
習題17(306)
上機實踐17(306)
第18章x8664位彙編程式設計(307)
18.1x8664的運行環境(307)
18.1.1暫存器(307)
18.1.2定址方式(308)
18.1.3指令系統(309)
18.264位的程式設計(309)
18.2.164位平台下與32位平台下的區別(309)
18.2.2顯示一個訊息框(312)
18.2.3浮點數運算(312)
18.2.4程式自我修改(313)
18.3x8664機器指令編碼規則(314)
習題18(317)
上機實踐18(317)
第19章上機操作(318)
19.1創建工程和生成可執行程式(318)
19.2程式的調試(319)
19.3編譯連結器的配置(322)
19.4其他操作(324)
附錄ASCII字元表(326)
參考文獻(327)

相關詞條

熱門詞條

聯絡我們