關(guān)于我們
書單推薦
新書推薦
|
匯編語言:基于x86處理器(原書第7版) 本書是匯編語言課程的經(jīng)典教材,系統(tǒng)介紹x86和Intel64處理器的匯編語言編程和架構(gòu)。前9章為匯編語言的核心概念,包括:匯編語言基礎(chǔ),x86處理器架構(gòu),數(shù)據(jù)傳送、尋址和算術(shù)運(yùn)算,過程,條件處理,整數(shù)運(yùn)算,高級過程,以及字符串和數(shù)組。本書為原書第7版,增加了部分實(shí)例程序的討論,補(bǔ)充了更多的復(fù)習(xí)題和關(guān)鍵術(shù)語,介紹了64位編程;還有配套的網(wǎng)上資料,提供完整的程序清單、復(fù)習(xí)題答案和編程練習(xí)的解決方案。 前 言A 本書介紹x86和Intel64處理器的匯編語言編程與架構(gòu),適合作為下述幾類大學(xué)課程的教材: 匯編語言編程計(jì)算機(jī)系統(tǒng)基礎(chǔ)計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)學(xué)生使用Intel或AMD處理器,用Microsoft宏匯編器(Microsoft Macro Assembler,MASM)編程,MASM運(yùn)行在Microsoft Windows最新的版本上。盡管本書的初衷是作為大學(xué)生的編程教材,但它也是計(jì)算機(jī)體系結(jié)構(gòu)課程的有效補(bǔ)充。本書廣受歡迎,前幾個(gè)版本已被翻譯為多種語言。 重點(diǎn)主題 本版所含主題可以自然過渡到講述計(jì)算機(jī)體系結(jié)構(gòu)、操作系統(tǒng)和編寫編譯器的后續(xù)課程: 虛擬機(jī)概念指令集架構(gòu)基本布爾運(yùn)算指令執(zhí)行周期內(nèi)存訪問和握手中斷和輪詢基于硬件的I/O浮點(diǎn)數(shù)二進(jìn)制表示其他主題則專門針對x86和Intel64架構(gòu): 受保護(hù)的內(nèi)存和分頁實(shí)地址模式的內(nèi)存分段16位中斷處理MS-DOS和BIOS系統(tǒng)調(diào)用(中斷)浮點(diǎn)單元架構(gòu)和編程指令編碼本書中的某些例子還可以用于計(jì)算機(jī)科學(xué)課程體系中的后續(xù)課程: 搜索與排序算法高級語言結(jié)構(gòu)有限狀態(tài)機(jī)代碼優(yōu)化示例第7版的新內(nèi)容這一版增加了對程序示例的討論,添加了更多的復(fù)習(xí)題和關(guān)鍵術(shù)語,介紹了64位編程,降低了對子程序庫的依賴性。具體內(nèi)容如下: 本版前面的幾章現(xiàn)在包含了以64位CPU架構(gòu)和編程為主的小節(jié),并且還創(chuàng)建了子程序庫的64位版本Irvine64。 修改、替換了很多復(fù)習(xí)題和練習(xí),部分題目從章節(jié)內(nèi)移動到該章末尾,且習(xí)題分為兩部分:簡答題和算法基礎(chǔ)練習(xí)。后者要求學(xué)生編寫一小段代碼實(shí)現(xiàn)一個(gè)目標(biāo)。 每章有一節(jié)為關(guān)鍵術(shù)語,列出了新的術(shù)語和概念,以及新的MASM偽指令和Intel指令。 添加了新的編程練習(xí),刪除了一些舊習(xí)題,并對一些現(xiàn)有的練習(xí)進(jìn)行了修改。 本書對作者子程序庫的依賴性大大減低。鼓勵學(xué)生自己調(diào)用系統(tǒng)函數(shù),并使用Visual Studio調(diào)試器單步執(zhí)行程序。Irvine32和Irvine64鏈接庫可以幫助學(xué)生處理輸入/輸出,但是不強(qiáng)制要求使用它們。 作者錄制的新視頻教程涵蓋了本書的基本內(nèi)容,并已添加到Pearson網(wǎng)站。 本書仍然關(guān)注其首要目標(biāo),即教授學(xué)生編寫并調(diào)試機(jī)器級程序。它不能代替計(jì)算機(jī)體系結(jié)構(gòu)的完整教材,但它確實(shí)在告訴學(xué)生計(jì)算機(jī)工作原理的基礎(chǔ)上,給出了編寫軟件的第一手經(jīng)驗(yàn)。我們認(rèn)為,理論聯(lián)系實(shí)際能讓學(xué)生更好地掌握知識。在工程課程中,學(xué)生構(gòu)建原型;在計(jì)算機(jī)體系結(jié)構(gòu)課程中,學(xué)生應(yīng)編寫機(jī)器級程序。在這些課程里,學(xué)生都能獲得難忘的經(jīng)驗(yàn),從而有信心在任何OS/面向機(jī)器的環(huán)境中工作。 保護(hù)模式編程是紙版章節(jié)(第1章~第13章)的重中之重。因此,學(xué)生需要在最新版本的Microsoft Windows環(huán)境下創(chuàng)建并運(yùn)行32位和64位程序。其他4章是電子版,講述16位編程。這些章包含了BIOS編程、MS-DOS服務(wù)、鍵盤和鼠標(biāo)輸入、視頻編程和圖形圖像內(nèi)容。其中一章為磁盤存儲基礎(chǔ),還有一章為高級DOS編程技術(shù)。 子程序庫 本書為學(xué)生提供了三個(gè)版本的子程序庫,用于基本輸入/輸出、模擬、計(jì)時(shí)和其他有用的任務(wù)。Irvine32和Irvine64鏈接庫運(yùn)行于保護(hù)模式。16位版本的鏈接庫(Irvine16.lib)運(yùn)行于實(shí)地址模式,且只用于第14章~第17章。這些庫的完整源代碼見于配套的網(wǎng)站。鏈接庫是為了使用方便,而不是為了阻止學(xué)生學(xué)習(xí)如何自行對輸入–輸出編程。鼓勵學(xué)生創(chuàng)建自己的鏈接庫。 所含軟件與示例 所有示例程序均在Microsoft Visual Studio 2012下,用Microsoft Macro Assembler Version 11.0進(jìn)行了驗(yàn)證。此外,還提供了批處理文件允許學(xué)生用Windows命令行匯編和運(yùn)行應(yīng)用程序。第14章中的32位C++應(yīng)用程序已用Microsoft Visual C++ .NET測試。本書的內(nèi)容更新與勘誤參見配套的網(wǎng)站,其中包括了一些額外的編程項(xiàng)目,老師可以在章節(jié)結(jié)束的時(shí)候布置給學(xué)生。 總體目標(biāo)本書的以下目標(biāo)旨在提高學(xué)生對匯編語言相關(guān)知識的興趣并拓展知識面: Intel和AMD處理器架構(gòu)與編程;實(shí)地址模式和保護(hù)模式編程;匯編語言偽指令、宏、運(yùn)算符與程序結(jié)構(gòu);編程方法,展示了如何用匯編語言創(chuàng)建系統(tǒng)級軟件工具和應(yīng)用程序;計(jì)算機(jī)硬件操作;匯編語言程序、操作系統(tǒng)和其他應(yīng)用程序之間的交互作用。 本書的目標(biāo)之一是幫助學(xué)生以機(jī)器級的思維方式來處理編程問題。將CPU視為交互工具,學(xué)習(xí)盡可能直接地監(jiān)控其操作是很重要的。調(diào)試器是程序員最好的朋友,不僅可以捕捉錯誤,還可以用作學(xué)習(xí)CPU和操作系統(tǒng)的教學(xué)工具。我們鼓勵學(xué)生探查高級語言的內(nèi)部機(jī)制,并能意識到大多數(shù)編程語言都被設(shè)計(jì)為可移植的,因此,也獨(dú)立于其運(yùn)行的主機(jī)。除了短小的示例外,本書還有幾百個(gè)可運(yùn)行的程序來演示書中講述的指令和思想。本書結(jié)尾有參考資料,包括MS-DOS中斷和指令助記符指南。 背景知識 讀者應(yīng)至少能熟練使用一種高級語言進(jìn)行編程,比如Python、Java、C或C++。本書有一章涉及C++接口,因此,如果手邊有編譯器將會非常有幫助。本書不僅已經(jīng)用于計(jì)算機(jī)科學(xué)和管理信息系統(tǒng)專業(yè)課堂,而且還用于其他工程課程。 特點(diǎn)完整的程序清單 配套的網(wǎng)站包含了補(bǔ)充資料、學(xué)習(xí)指南,以及本書全部示例的源代碼。本書還提供了豐富的鏈接庫,其中包括30多個(gè)過程,可以簡化用戶輸入–輸出、數(shù)字處理、磁盤和文件處理,以及字符串處理。課程初期,學(xué)生可以用這個(gè)鏈接庫來改進(jìn)自己編寫的程序。之后,學(xué)生可以自行編寫過程并將它們添加到鏈接庫中。 編程邏輯 本書用兩章的篇幅重點(diǎn)介紹了布爾邏輯和位操作,并且有意識地嘗試將高級編程邏輯與底層機(jī)器細(xì)節(jié)對應(yīng)起來。這有助于學(xué)生創(chuàng)建更有效的實(shí)現(xiàn),且有助于他們更好地理解編譯器是如何生成目標(biāo)代碼的。 硬件和操作系統(tǒng)概念 本書前兩章介紹基礎(chǔ)硬件和數(shù)據(jù)表示概念,包括二進(jìn)制數(shù)、CPU架構(gòu)、狀態(tài)標(biāo)志和內(nèi)存映射。概述硬件和以歷史的角度審視Intel處理器系列可以幫助學(xué)生更好地理解其目標(biāo)計(jì)算機(jī)系統(tǒng)。 結(jié)構(gòu)化程序設(shè)計(jì)方法 從第5章開始,關(guān)注重點(diǎn)為過程和功能分解。同時(shí),提供了更復(fù)雜的編程練習(xí),要求學(xué)生在編碼之前把設(shè)計(jì)作為重點(diǎn)。 Java字節(jié)碼和Java虛擬機(jī) 第8章和第9章解釋了Java字節(jié)碼的基本操作,并給出了簡短的演示例子。很多短示例不僅給出了反匯編字節(jié)碼形式,還給出了詳細(xì)的步驟解釋。 磁盤存儲概念 學(xué)生從硬件和軟件的角度學(xué)習(xí)基于MS-Windows的磁盤存儲系統(tǒng)的基本原理。 創(chuàng)建鏈接庫 學(xué)生不僅可以自由地把自己編寫的過程添加到本書鏈接庫,還可以創(chuàng)建新的鏈接庫。他們要學(xué)習(xí)用工具箱方法進(jìn)行編程,并編寫多個(gè)程序可以共用的代碼。 宏和結(jié)構(gòu) 本書用一章專門描述創(chuàng)建結(jié)構(gòu)、聯(lián)合以及宏,這些對匯編語言編程和系統(tǒng)編程是非常重要的。條件宏和高級運(yùn)算符使得宏更加專業(yè)。 高級語言接口 本書用一章專門描述匯編語言與C和C++的接口。對于想要從事高級語言編程工作的學(xué)生而言,這是一項(xiàng)重要的工作技能。他們可以學(xué)習(xí)代碼優(yōu)化,還可以通過例子了解C++編譯器是如何優(yōu)化代碼的。 教學(xué)輔助 所有的程序清單都在網(wǎng)上。同時(shí)向教師提供了測試庫、復(fù)習(xí)題答案、編程練習(xí)的解決方案,以及每章的PPT。 章節(jié)說明第1章~第9章為匯編語言核心概念,需要按順序?qū)W習(xí)。后面的章節(jié)則可以自由選擇。下面的章節(jié)示意圖展示了后續(xù)章節(jié)與其他章節(jié)知識之間的依賴關(guān)系。 第1章 基本概念:匯編語言的應(yīng)用、基礎(chǔ)概念、機(jī)器語言和數(shù)據(jù)表示。 第2章 x86處理器架構(gòu):基本微計(jì)算機(jī)設(shè)計(jì)、指令執(zhí)行周期、x86處理器架構(gòu)、Intel64架構(gòu)、x86內(nèi)存管理、微計(jì)算機(jī)組件、輸入–輸出系統(tǒng)。 第3章 匯編語言基礎(chǔ):介紹匯編語言、鏈接和調(diào)試、常量和變量定義。 第4章 數(shù)據(jù)傳送、尋址和算術(shù)運(yùn)算:簡單的數(shù)據(jù)傳送和算術(shù)運(yùn)算指令、匯編–鏈接–執(zhí)行周期、運(yùn)算符、偽指令、表達(dá)式、JMP和LOOP指令、間接尋址。 第5章 過程:與外部鏈接庫的鏈接、描述本書鏈接庫、堆棧操作、過程的定義和使用、流程圖、自頂向下的結(jié)構(gòu)設(shè)計(jì)。 第6章 條件處理:布爾和比較指令、條件跳轉(zhuǎn)和循環(huán)、高級邏輯結(jié)構(gòu)、有限狀態(tài)機(jī)。 第7章 整數(shù)運(yùn)算:移位和循環(huán)移位指令及其應(yīng)用、乘法和除法、擴(kuò)展加法和減法、ASCII和壓縮十進(jìn)制運(yùn)算。 第8章 高級過程:堆棧參數(shù)、局部變量、高級PROC和INVOKE偽指令、遞歸。 第9章 字符串和數(shù)組:字符串原語、操作字符和整數(shù)數(shù)組、二維數(shù)組、排序和檢索。 第10章 結(jié)構(gòu)和宏:結(jié)構(gòu)、宏、條件匯編偽指令、定義重復(fù)塊。 第11章 MS-Windows編程:保護(hù)模式內(nèi)存管理概念、用Microsoft-Windows API顯示文本和顏色,動態(tài)內(nèi)存分配。 第12章 浮點(diǎn)數(shù)處理與指令編碼:浮點(diǎn)數(shù)二進(jìn)制表示和浮點(diǎn)運(yùn)算。學(xué)習(xí)IA-32浮點(diǎn)單元編程。理解IA-32機(jī)器指令編碼。 第13章 高級語言接口:參數(shù)傳遞規(guī)范、內(nèi)嵌匯編代碼、將匯編語言模塊鏈接到C和C++程序。 附錄A MASM參考知識附錄B x86指令集附錄C “本節(jié)回顧”問題答案下面的章節(jié)和附錄由配套網(wǎng)站提供: 第14章 16位MS-DOS編程:內(nèi)存組織、中斷、函數(shù)調(diào)用、標(biāo)準(zhǔn)MS-DOS文件I/O服務(wù)。 第15章 磁盤基礎(chǔ)知識:磁盤存儲系統(tǒng)、扇區(qū)、簇、目錄、文件分配表、處理MS-DOS錯誤碼、驅(qū)動器和目錄操作。 第16章 BIOS編程:鍵盤輸入、視頻文本、圖形、鼠標(biāo)編程。 第17章 高級MS-DOS編程:自定義設(shè)計(jì)段、運(yùn)行時(shí)程序結(jié)構(gòu)、中斷處理、用I/O端口的硬件控制。 附錄D BIOS和MS-DOS中斷附錄E “本節(jié)回顧”問題答案(第14章~第17章)教師和學(xué)生資源教師資源下面受保護(hù)的教師資源見配套網(wǎng)站www.pearsonhighered.com/irvine: PPT講義教師解題手冊學(xué)生資源學(xué)生通過位于www.pearsonhighered.com/irvine的出版社網(wǎng)站可以找到本書作者的網(wǎng)站鏈接。下述資源位于www.asmirvine.com,且不需要用訪問卡: Getting Started(入門),循序漸進(jìn)的完整教程,幫助學(xué)生設(shè)置Visual Studio進(jìn)行匯編語言編程。 與匯編語言編程主題相關(guān)的補(bǔ)充讀物。 本書全部示例程序的完整代碼,以及作者補(bǔ)充鏈接庫的源代碼。 Assembly Language Workbook(匯編語言工作手冊),一個(gè)交互式的工作手冊,其中包括數(shù)值轉(zhuǎn)換、尋址模式、寄存器使用、調(diào)試編程和浮點(diǎn)二進(jìn)制數(shù)。內(nèi)容頁面是可以自定義的HTML文檔,幫助文件為Windows幫助格式。 調(diào)試工具:Microsoft Visual Studio調(diào)試器用法教程。 致謝非常感謝培生教育(Pearson Education)計(jì)算機(jī)科學(xué)的執(zhí)行主編Tracy Johnson,過去幾年提供了友好且有益的指導(dǎo)。感謝Jouve公司的Pavithra Jayapaul以及培生出版社的產(chǎn)品編輯Greg Dulles為本書出版所做的出色工作。 早期版本特別感謝以下諸位,他們在本書早期版本中提供了極大的幫助: William Barrett,圣何塞州立大學(xué)Scott BlackledgeJames Brink,太平洋路德大學(xué)Gerald Cahill,羚羊谷學(xué)院 出版者的話 譯者序 前言 第1章 基本概念 1 1.1 歡迎來到匯編語言的世界 1 1.1.1 讀者可能會問的問題 2 1.1.2 匯編語言的應(yīng)用 4 1.1.3 本節(jié)回顧 5 1.2 虛擬機(jī)概念 5 1.3 數(shù)據(jù)表示 7 1.3.1 二進(jìn)制整數(shù) 7 1.3.2 二進(jìn)制加法 8 1.3.3 整數(shù)存儲大小 9 1.3.4 十六進(jìn)制整數(shù) 10 1.3.5 十六進(jìn)制加法 11 1.3.6 有符號二進(jìn)制整數(shù) 12 1.3.7 二進(jìn)制減法 13 1.3.8 字符存儲 14 1.3.9 本節(jié)回顧 15 1.4 布爾表達(dá)式 16 1.4.1 布爾函數(shù)真值表 18 1.4.2 本節(jié)回顧 18 1.5 本章小結(jié) 19 1.6 關(guān)鍵術(shù)語 19 1.7 復(fù)習(xí)題和練習(xí) 20 1.7.1 簡答題 20 1.7.2 算法基礎(chǔ) 21 第2章 x86處理器架構(gòu) 23 2.1 一般概念 23 2.1.1 基本微機(jī)設(shè)計(jì) 23 2.1.2 指令執(zhí)行周期 24 2.1.3 讀取內(nèi)存 25 2.1.4 加載并執(zhí)行程序 26 2.1.5 本節(jié)回顧 26 2.2 32位x86處理器 27 2.2.1 操作模式 27 2.2.2 基本執(zhí)行環(huán)境 27 2.2.3 x86內(nèi)存管理 30 2.2.4 本節(jié)回顧 30 2.3 64位x86-64處理器 30 2.3.1 64位操作模式 31 2.3.2 基本64位執(zhí)行環(huán)境 31 2.4 典型x86計(jì)算機(jī)組件 32 2.4.1 主板 32 2.4.2 內(nèi)存 34 2.4.3 本節(jié)回顧 34 2.5 輸入輸出系統(tǒng) 34 2.5.1 I/O訪問層次 34 2.5.2 本節(jié)回顧 36 2.6 本章小結(jié) 36 2.7 關(guān)鍵術(shù)語 37 2.8 復(fù)習(xí)題 38 第3章 匯編語言基礎(chǔ) 39 3.1 基本語言元素 39 3.1.1 第一個(gè)匯編語言程序 39 3.1.2 整數(shù)常量 40 3.1.3 整型常量表達(dá)式 41 3.1.4 實(shí)數(shù)常量 41 3.1.5 字符常量 42 3.1.6 字符串常量 42 3.1.7 保留字 42 3.1.8 標(biāo)識符 43 3.1.9 偽指令 43 3.1.10 指令 44 3.1.11 本節(jié)回顧 46 3.2 示例:整數(shù)加減法 46 3.2.1 AddTwo程序 46 3.2.2 運(yùn)行和調(diào)試AddTwo程序 48 3.2.3 程序模板 52 3.2.4 本節(jié)回顧 52 3.3 匯編、鏈接和運(yùn)行程序 53 3.3.1 匯編–鏈接–執(zhí)行周期 53 3.3.2 列表文件 53 3.3.3 本節(jié)回顧 55 3.4 定義數(shù)據(jù) 55 3.4.1 內(nèi)部數(shù)據(jù)類型 55 3.4.2 數(shù)據(jù)定義語句 55 3.4.3 向AddTwo程序添加一個(gè)變量 56 3.4.4 定義BYTE和SBYTE數(shù)據(jù) 57 3.4.5 定義WORD和SWORD數(shù)據(jù) 59 3.4.6 定義DWORD和SDWORD數(shù)據(jù) 59 3.4.7 定義QWORD數(shù)據(jù) 60 3.4.8 定義壓縮BCD(TBYTE)數(shù)據(jù) 60 3.4.9 定義浮點(diǎn)類型 61 3.4.10 變量加法程序 61 3.4.11 小端順序 62 3.4.12 聲明未初始化數(shù)據(jù) 62 3.4.13 本節(jié)回顧 63 3.5 符號常量 63 3.5.1 等號偽指令 63 3.5.2 計(jì)算數(shù)組和字符串的大小 64 3.5.3 EQU偽指令 65 3.5.4 TEXTEQU偽指令 66 3.5.5 本節(jié)回顧 66 3.6 64位編程 67 3.7 本章小結(jié) 68 3.8 關(guān)鍵術(shù)語 69 3.8.1 術(shù)語 69 3.8.2 指令、運(yùn)算符和偽指令 70 3.9 復(fù)習(xí)題和練習(xí) 70 3.9.1 簡答題 70 3.9.2 算法基礎(chǔ) 71 3.10 編程練習(xí) 71 第4章 數(shù)據(jù)傳送、尋址和算術(shù)運(yùn)算 73 4.1 數(shù)據(jù)傳送指令 73 4.1.1 引言 73 4.1.2 操作數(shù)類型 73 4.1.3 直接內(nèi)存操作數(shù) 74 4.1.4 MOV指令 75 4.1.5 整數(shù)的全零/符號擴(kuò)展 76 4.1.6 LAHF和SAHF指令 77 4.1.7 XCHG指令 78 4.1.8 直接–偏移量操作數(shù) 78 4.1.9 示例程序(Moves) 79 4.1.10 本節(jié)回顧 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 執(zhí)行算術(shù)表達(dá)式 82 4.2.6 加減法影響的標(biāo)志位 82 4.2.7 示例程序(AddSubTest) 85 4.2.8 本節(jié)回顧 86 4.3 與數(shù)據(jù)相關(guān)的運(yùn)算符和偽指令 87 4.3.1 OFFSET運(yùn)算符 87 4.3.2 ALIGN偽指令 88 4.3.3 PTR運(yùn)算符 88 4.3.4 TYPE運(yùn)算符 89 4.3.5 LENGTHOF運(yùn)算符 89 4.3.6 SIZEOF運(yùn)算符 90 4.3.7 LABEL偽指令 90 4.3.8 本節(jié)回顧 90 4.4 間接尋址 91 4.4.1 間接操作數(shù) 91 4.4.2 數(shù)組 91 4.4.3 變址操作數(shù) 92 4.4.4 指針 93 4.4.5 本節(jié)回顧 95 4.5 JMP和LOOP指令 95 4.5.1 JMP指令 96 4.5.2 LOOP指令 96 4.5.3 在Visual Studio調(diào)試器中顯示數(shù)組 97 4.5.4 整數(shù)數(shù)組求和 98 4.5.5 復(fù)制字符串 98 4.5.6 本節(jié)回顧 99 4.6 64位編程 99 4.6.1 MOV指令 99 4.6.2 64位的SumArray程序 100 4.6.3 加法和減法 101 4.6.4 本節(jié)回顧 102 4.7 本章小結(jié) 102 4.8 關(guān)鍵術(shù)語 104 4.8.1 術(shù)語 104 4.8.2 指令、運(yùn)算符和偽指令 104 4.9 復(fù)習(xí)題和練習(xí) 104 4.9.1 簡答題 104 4.9.2 算法基礎(chǔ) 106 4.10 編程練習(xí) 107 第5章 過程 108 5.1 堆棧操作 108 5.1.1 運(yùn)行時(shí)堆棧(32位模式) 108 5.1.2 PUSH和POP指令 110 5.1.3 本節(jié)回顧 112 5.2 定義并使用過程 112 5.2.1 PROC偽指令 112 5.2.2 CALL和RET指令 114 5.2.3 過程調(diào)用嵌套 115 5.2.4 向過程傳遞寄存器參數(shù) 116 5.2.5 示例:整數(shù)數(shù)組求和 116 5.2.6 保存和恢復(fù)寄存器 118 5.2.7 本節(jié)回顧 119 5.3 鏈接到外部庫 119 5.3.1 背景知識 119 5.3.2 本節(jié)回顧 120 5.4 Irvine32鏈接庫 120 5.4.1 創(chuàng)建庫的動機(jī) 120 5.4.2 概述 122 5.4.3 過程詳細(xì)說明 123 5.4.4 庫測試程序 133 5.4.5 本節(jié)回顧 139 5.5 64位匯編編程 139 5.5.1 Irvine64鏈接庫 139 5.5.2 調(diào)用64位子程序 140 5.5.3 x64調(diào)用規(guī)范 140 5.5.4 調(diào)用過程示例 141 5.6 本章小結(jié) 142 5.7 關(guān)鍵術(shù)語 143 5.7.1 術(shù)語 143 5.7.2 指令、運(yùn)算符和偽指令 143 5.8 復(fù)習(xí)題和練習(xí) 143 5.8.1 簡答題 143 5.8.2 算法基礎(chǔ) 146 5.9 編程練習(xí) 146 第6章 條件處理 148 6.1 條件分支 148 6.2 布爾和比較指令 148 6.2.1 CPU狀態(tài)標(biāo)志 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 置位和清除單個(gè)CPU標(biāo)志位 155 6.2.10 64位模式下的布爾指令 155 6.2.11 本節(jié)回顧 156 6.3 條件跳轉(zhuǎn) 156 6.3.1 條件結(jié)構(gòu) 156 6.3.2 Jcond指令 156 6.3.3 條件跳轉(zhuǎn)指令類型 157 6.3.4 條件跳轉(zhuǎn)應(yīng)用 159 6.3.5 本節(jié)回顧 163 6.4 條件循環(huán)指令 163 6.4.1 LOOPZ和LOOPE指令 163 6.4.2 LOOPNZ和LOOPNE指令 164 6.4.3 本節(jié)回顧 164 6.5 條件結(jié)構(gòu) 164 6.5.1 塊結(jié)構(gòu)的IF語句 165 6.5.2 復(fù)合表達(dá)式 167 6.5.3 WHILE循環(huán) 168 6.5.4 表驅(qū)動選擇 169 6.5.5 本節(jié)回顧 171 6.6 應(yīng)用:有限狀態(tài)機(jī) 172 6.6.1 驗(yàn)證輸入字符串 172 6.6.2 驗(yàn)證有符號整數(shù) 172 6.6.3 本節(jié)回顧 176 6.7 條件控制流偽指令 176 ……
你還可能感興趣
我要評論
|