基本電學

Download Report

Transcript 基本電學

Assembly Language
陳建宏 教授
E-mail: [email protected]
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/ 教材下載網址
授課大綱
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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?displa
ylang=zh-tw&FamilyID=7a1c9da0-0510-44a2-b0427ef370530c64


不需先安裝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次考試(都是在範圍內) (請參閱課程大綱),考試目的是
測驗你的觀念而不是背誦。
作業


出席講課及複習課是必須的。在這裡你可以了解觀念、你可
以和助教或同學們一起討論、你也可以提出任何的問題。
這裡的問題集可以幫助你了解觀念,解題方法、激勵更多的
思考。試著作所有題目並對照答案,並且試著參照你為何有
所不能。
這會是一門有趣的課,期待能和你們一同努力,將會
獲益良多。