140 likes | 343 Views
Assembly Language. 陳建宏 教授 E-mail: jameschen@chu.edu.tw WWW: http://www.chu.edu.tw/~jameschen/ 課程網頁 : http://www.chu.edu.tw/~jameschen/courses/98/AL/. 簡介. 課程目標 教材 課程大綱 評分方式 我們預期你 …. 課程目標. 了解組合語言的基本概念與用法,俾能進一部研習資工系進階課程 組合語言 微處理機系統 計算機結構 數位系統 系統程式 嵌入式系統. 教材.
E N D
Assembly Language 陳建宏 教授 E-mail: jameschen@chu.edu.tw WWW: http://www.chu.edu.tw/~jameschen/ 課程網頁: http://www.chu.edu.tw/~jameschen/courses/98/AL/
簡介 • 課程目標 • 教材 • 課程大綱 • 評分方式 • 我們預期你…
課程目標 • 了解組合語言的基本概念與用法,俾能進一部研習資工系進階課程 • 組合語言 • 微處理機系統 • 計算機結構 • 數位系統 • 系統程式 • 嵌入式系統
教材 • Assembly Language for Intel-Based Computers (5th Edition) • by Kip R. Irvine • Prentice-Hall Inc. • ISBN: 0-13-204848-5 • 台灣代理: 全華科技 • http://www.prenhall.com/irvine/教材主頁 • http://kipirvine.com/asm/教材下載網址
授課大綱 • Basic Concepts • IA-32 Processor Architecture • Assembly Language Fundamentals • Data Transfers, Addressing, and Arithmetic • Procedures • Conditional Processing • Integer Arithmetic • Advanced Procedures • Strings and Arrays • Structures and Macros
評分方式 • 成績 • Midterm Exam x2 (期中紙筆考) 30%, • Final Exam (期末上機考) 30%, • Assignments (課後作業) 30%, • In-class assignments (隨堂表現) 10% • 沒交作業、錯過小考或是測驗都視作零分。只有在有醫生證明的病假時才能不參加測驗。如果可能的話,請假最好在考試前就辦好手續。
助教時間:未定 (自由參加, 有到請簽名) • 2 次 期中考, 1次期末上機考 • 點名3次不到 – 當掉
組合語言開發環境 • Microsoft Macro Assembler 8.0 (MASM) Package (x86) • MASM 是 Microsoft Macro Assembler 的縮寫,它是 微軟 為 x86微處理器家族,所寫的一套巨集組譯器。它最初是用來發展在 MS-DOS上面執行的軟體,同時,它也該系統最流行的組譯器。 • 它支援的巨集很靈巧,既廣泛又多樣性,結構化程式的慣用語法,包含高階架構式的迴圈、程序呼叫,以及輪替 (alternation)(因此,MASM 算是高階組譯器的一個範本).
起源與競爭 • 在 1990 年代初期,不管如何,有一些可供選擇的組譯器,像是 Borland TASM、共享版的 A86,以及(在 90 年代末期)NASM,都開始取得 MASM 的一些市場份量。但是在 1990 年代終,有兩種因素,使得 MASM 保住大部分的市場份量: • 一是,微軟停止把 MASM 作為商業產品一樣的出售,並開始當成免費散佈的 DDK(驅動器發展套件)之一部分;其次,MASM32 開發包、Iczelion's Win32 教材的出現,讓視窗應用程式的設計,更方便使用 MASM. • 後來在 2000 年,MASM 6.15的發行,一樣是 Visual C++ Processor Pack的一部份,費用全免。結果,在 Visual C++ 6.0後來的所有版本,所包含的 MASM 之版本,都相等該 Visual C++的版本。後來在 Visual C++ 2005,64 位元版的 MASM 出現了(檔名為 ml64.exe)。加上有龐大數量已安裝 MASM 的用戶群基礎,這些因素,使得MASM仍能繼續生存而不被淘汰。
支援 MASM 的專案 • 有許多正在進行的軟體開發專案,都有支援到 MASM,其中包括 IDE(如 WinAsm Studio,RadASM)、除錯器(像是 OllyDbg),以及 反組譯器(如 IDAPro, Interactive Disassembler) • 這個 MASM32的專案(http://www.movsd.com/)為了MASM 使用者的方便,它把許多非常令人感動的程式師所寫的程式庫(library)、程式範例 (sample code) 寶庫,以及令人感動的說明文件,全都集合在一起。也有很多網上論壇,有在支援 MASM(包括 http://www.masmforum.com). • 這些也都是沿習著著名的產品,如 Visual Basic、Visual C++、EasyCode的 IDE一樣,為 MASM 提供 視覺化(visual) 的能力。雖然這個產品上了年紀,但它仍然是最受各方支援的組譯器。
MASM 的版本 • 雖然 MASM 不再是商業產品,但微軟乃繼續支援著它,因為在微軟的廠內,還是存在著大量以組語為基礎的程式碼。 • 以單獨包裝販賣的 MASM,最後版本的是 6.11. 自從微軟停止對 MASM 分開銷售後,至今他們也更新了幾次的 MASM 6.x 版。 • 6.15 版是放在 Visual C++ 6.0 Processor Pack中。 • 7.0 版是放在 Visual C++ .NET 2002。 • 7.1 版是放在 Visual C++ .NET 2003。 • 8.0 版是放在 Visual C++ .NET 2005,它也可以組譯x64的程式碼。 • 在這些新版 Visual C++的 bin 目錄中,都可以看見 ml.exe,但在 Visual C++ .NET 2005的同樣目錄中,可以看見 ml64.exe,它可以組譯x64的程式碼。它的說明文件,也都是這些新版本的 Visual C++之說明文件的一部份。 • 有一些新版本的 MASM,也會放在微軟的 SDK和 DDK中。
操作環境 • 完整安裝說明: • http://kipirvine.com/asm/gettingStarted/index.htm • 視窗方式: • Visual C++ NET 已經內建 • 簡易版本安裝方式: • 需先安裝Visual C++ 2005 (2008) Express Edition (FREE) • 下載 MASM 8.0 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
不需先安裝Visual C++ Express Edition 的方式 • 直接取用MASM 8.0的功能 • 以WinZip(WinRAR)亦可解壓縮下載自微軟網站的MASMsetup.EXE,可得setup.exe。 • 再以WinZip解壓縮步驟1所得的setup.exe,可得vc_masm.msi和vc_masm1.cab兩檔。 • 再以WinZip解壓縮步驟2所得的vc_masm1.cab,可得名稱既長又怪的檔案FL_ml_exe_____X86.3643236F_FC70_11D3_A536_0090278A1BB8。 • 這個名稱既長又怪的檔案其實就是ml.exe。將FL_ml_exe_____X86.3643236F_FC70_11D3_A536_0090278A1BB8更名成ml.exe即可。
我們預期你… • 共同參與 • 出席講課及複習課是必須的。在這裡你可以了解觀念、你可以和助教或同學們一起討論、你也可以提出任何的問題。 • 考試 • 有2次考試(都是在範圍內) (請參閱課程大綱),考試目的是測驗你的觀念而不是背誦。 • 作業 • 這裡的問題集可以幫助你了解觀念,解題方法、激勵更多的思考。試著作所有題目並對照答案,並且試著參照你為何有所不能。 • 這會是一門有趣的課,期待能和你們一同努力,將會獲益良多。