本課程通過自頂向下的程序設計演示和解釋,教授學生如何在機器層面上編寫和調試程序,并將有效的設計技巧應用于多種程序設計課程。這種方法簡化并消除了學生在學習更高級的計算機體系結構和操作系統(tǒng)課程之前需要掌握的概念。
本書介紹x86和Intel64處理器的匯編語言編程與架構,適合作為下述幾類大學課程的教材: 匯編語言編程 計算機系統(tǒng)基礎 計算機體系結構基礎 學生使用Intel或AMD處理器,用Microsoft宏匯編器(Microsoft Macro Assembler,MASM)編程,并運行在Microsoft Windows的最新版本上。盡管本書的初衷是作為大學生的編程教材,但它也是計算機體系結構課程的有效補充。本書廣受歡迎,前幾個版本已被翻譯成多種語言。 重點主題。本版本所包含的下列主題可以自然過渡到計算機體系結構、操作系統(tǒng)及編寫編譯器的后續(xù)課程: 虛擬機概念 指令集架構 基本布爾運算 指令執(zhí)行周期 內存訪問和握手 中斷和輪詢 基于硬件的I/O 浮點數(shù)的二進制表示 下列主題則專門針對x86和Intel64架構: 受保護的內存和分頁 實地址模式下的內存分段 16位中斷處理 MS-DOS和BIOS系統(tǒng)調用(中斷) 浮點單元架構和編程 指令編碼 本書中的某些例子還適用于計算機科學課程體系中的后續(xù)課程: 查找與排序算法 高級語言結構 有限狀態(tài)機 代碼優(yōu)化示例 第8版的新內容 這個版本代表了本書向交互式電子教科書的過渡。我們對此非常興奮,因為讀者第一次能夠針對復習題、代碼動畫、教程視頻以及多輸入習題進行實驗和互動。 各章中的“本節(jié)回顧”都已改寫成交互式問題,可以對讀者的答案給出即時反饋。同時,新增加和刪除了一些問題,并修改了很多問題。 代碼動畫使得讀者能單步執(zhí)行程序代碼,并查看變量值和代碼注釋。讀者再也不必在程序代碼與下一頁上的文本解釋之間來回跳躍。 教材中插入了適時的教程視頻的鏈接,這樣讀者就能得到關于教材中相關主題的輔導。以前,對于這些呈現(xiàn)為清單的整套視頻,讀者需要單獨購買訂閱才能訪問。在本版本中,視頻是免費的。 多輸入習題允許用戶瀏覽程序清單,并在代碼旁邊的方框內插入變量值。讀者可接收到即時、彩色的反饋,有機會進行嘗試,直至所有輸入值都正確。 關鍵術語的超文本定義貫穿了全教材,這些定義都連接到一個在線的詞匯表。 簡而言之,我們提取了本書的精華內容(經過很多版本的精雕細琢),并將其置入交互式電子教科書中。 本書關注的首要目標仍然是教授學生編寫并調試機器級程序。它不能代替計算機體系結構的完整教材,但它確實能在一個對學生講授計算機如何工作的環(huán)境中給予學生編寫軟件的第一手經驗。我們認為,理論聯(lián)系實際能讓學生更好地掌握知識。在工程課程中,學生構建原型;而在計算機體系結構課程中,學生應編寫機器級程序。在這兩種情況下,學生都能獲得難忘的經驗,從而有信心在任何OS/面向機器的環(huán)境中工作。 保護模式編程是從第1章到第13章的重中之重。由此,學生就能創(chuàng)建32位和64位程序,并運行于最新版本的Microsoft Windows下。其余三章是傳統(tǒng)的章節(jié),講述了16位編程。這些章包含BIOS編程、MS-DOS服務、鍵盤和鼠標輸入、磁盤存儲基礎、視頻編程以及圖形處理。 子例程庫。本書為學生提供了三個版本的子例程庫,用于基本輸入/輸出、模擬、定時以及其他有用的任務。Irvine32和Irvine64庫運行于保護模式。16位版本的庫(Irvine16.lib)運行于實地址模式,且只用于第14~16章。這些庫的完整源代碼可見于配套的網站。鏈接庫是為了使用方便,而不是阻止學生自行對輸入/輸出編程。我們鼓勵學生創(chuàng)建自己的庫。 所含軟件和示例。所有示例程序均采用運行于寫作本書時最新的Microsoft Visual Studio中的Microsoft Macro Assembler進行了測試。此外,我們還提供了批處理文件,使得學生可在Windows命令提示符下匯編和運行應用程序。本書的信息更新與勘誤可參見配套的網站,其中包括一些額外的編程項目,教師可以在各章結束時布置給學生。 總體目標 本書的以下目標旨在拓展學生對匯編語言相關主題的興趣和知識: Intel和AMD處理器的架構及編程。 實地址模式和保護模式編程。 匯編語言偽指令、宏、操作符以及程序結構。 編程方法,展示如何使用匯編語言來創(chuàng)建系統(tǒng)級軟件工具和應用程序。 計算機硬件操作。 匯編語言程序、操作系統(tǒng)以及其他應用程序之間的交互作用。 我們的目標之一是幫助學生以機器級的思維方式來處理編程問題。將CPU視為交互工具,學習盡可能直接地監(jiān)控其操作是很重要的。調試器是程序員最好的朋友,它不僅可以捕捉錯誤,還可以用作講授CPU和操作系統(tǒng)的教學工具。我們鼓勵學生探究高級語言表面之下的內部機制,要讓他們意識到大多數(shù)編程語言都被設計為可移植的,因而也獨立于其宿主機。除了簡短的示例外,本書還包含幾百個可運行的程序,用來演示書中講述的指令和思想。本書末尾有一些參考資料,比如MS-DOS中斷和指令助記符指南。 背景知識要求。讀者應能自如地使用至少一種高級語言進行編程,比如Python、Java、C或C++。本書有一章涉及C++接口,因此,如果手邊有編譯器就會非常有幫助。本書不僅已經用于計算機科學和管理信息系統(tǒng)專業(yè)的課堂,而且還已用于其他工程課程。 特色 完
基普·R. 歐文(Kip R. Irvine)擁有邁阿密大學計算機科學碩士、音樂藝術博士學位,現(xiàn)為佛羅里達國際大學高級講師,教授計算機相關的課程。著有多本編程教材,被翻譯成多國語言,涵蓋的主題如匯編語言、C++、Visual Basic和COBOL。