[摘 要]匯編語(yǔ)言是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)重要的一門專業(yè)課,也是實(shí)踐性非常強(qiáng)的一門課。改革教學(xué)方法,提高教學(xué)效果,使學(xué)生能更好地學(xué)好匯編語(yǔ)言程序設(shè)計(jì)課程,我們努力探索,積極改革實(shí)驗(yàn)教學(xué)手段,增加教學(xué)內(nèi)容,開展多媒體教學(xué)。經(jīng)過近幾年的使用,收到了很好的效果。
[關(guān)鍵詞]教學(xué)方法 程序設(shè)計(jì) 匯編語(yǔ)言 面向機(jī)器
在教學(xué)工作中特別是一些理論性很強(qiáng)、概念較為抽象的專業(yè)課程中多媒體信息技術(shù)對(duì)其教學(xué)有很大幫助。多媒體信息既有圖像、文字、聲音等信息,又有動(dòng)畫效果作為輔助教學(xué)手段,可以使抽象的內(nèi)容形象化彌補(bǔ)傳統(tǒng)教學(xué)方式在直觀性、立體感及動(dòng)態(tài)效果方面的不足,有效地激發(fā)學(xué)生的學(xué)習(xí)興趣,增大課堂教學(xué)信息量,從而提高教學(xué)效果使學(xué)生更容易、更好地掌握專業(yè)知識(shí)。
傳統(tǒng)教學(xué)方式通常采用文字、掛圖等手段往往存在信息量不足、內(nèi)容陳舊、手段落后等缺陷。多媒體教學(xué)除文字外,還有聲音、圖像與圖形、動(dòng)畫與視頻等多種信息。在匯編語(yǔ)言課程的教學(xué)中充分運(yùn)用多媒體技術(shù),可有效地彌補(bǔ)傳統(tǒng)教學(xué)方式的不足。
一、匯編語(yǔ)言的特點(diǎn)
與高級(jí)語(yǔ)言相比較,匯編語(yǔ)言程序歸納起來主要有以下幾個(gè)主要特性:
1.匯編語(yǔ)言與機(jī)器的相關(guān)性。匯編格式指令實(shí)際上是機(jī)器指令的符號(hào)表示,與機(jī)器指令是一一對(duì)應(yīng)的。因此,它與機(jī)器的硬件有著密切的關(guān)系。而不同類型的CPU有不同的機(jī)器指令系統(tǒng),也就有不同的匯編語(yǔ)言。
雖然匯編語(yǔ)言源程序與高級(jí)語(yǔ)言源程序相比,它的通用性和可移植性要差很多,但通過匯編語(yǔ)言可以最直接最有效地控制機(jī)器。這常常是大多數(shù)高級(jí)語(yǔ)言難以做到的。
2.匯編語(yǔ)言程序執(zhí)行效率高。正因?yàn)閰R編語(yǔ)言有“與機(jī)器相關(guān)性”的特性,程序員用匯編語(yǔ)言編寫程序時(shí),可充分發(fā)揮自己的聰明才智,對(duì)機(jī)器內(nèi)部的各種資源進(jìn)行合理的安排,讓它們始終處于最佳的使用狀態(tài)。這樣做的最終效果就是:程序的執(zhí)行代碼短,執(zhí)行速度快。
用匯編語(yǔ)言編寫的源程序在匯編后所得的目標(biāo)程序效率高。這種目標(biāo)程序的高效率反映在時(shí)間和空間兩個(gè)方面:其一是運(yùn)行速度快,其二是目標(biāo)程序短。在采用相同算法的前提下,任何高級(jí)語(yǔ)言程序在這兩方面的效率都不如匯編語(yǔ)言程序,許多情況下更是遠(yuǎn)遠(yuǎn)不及。
3.匯編語(yǔ)言程序編寫復(fù)雜,調(diào)試?yán)щy。匯編語(yǔ)言編寫程序時(shí),必須考慮包括寄存器、存儲(chǔ)單元和尋址方式在內(nèi)的幾乎所有的細(xì)節(jié)問題,例如:存儲(chǔ)單元的分配、指令執(zhí)行結(jié)果對(duì)標(biāo)志位的影響、堆棧設(shè)置的位置既使用情況等。在使用高級(jí)語(yǔ)言編寫程序時(shí),這些問題都由操作系統(tǒng)完成,程序員不會(huì)遇到這些瑣碎卻重要的問題。
調(diào)試匯編語(yǔ)言程序往往要比調(diào)試高級(jí)語(yǔ)言的程序困難的多,其主要原因有:匯編語(yǔ)言指令涉及機(jī)器資源的細(xì)節(jié),調(diào)試時(shí)要清楚機(jī)器資源的變化情況;匯編語(yǔ)言提供程序員最大的“舞臺(tái)”,而程序員往往為了追求“時(shí)空”的高效率而不顧程序的結(jié)構(gòu)。這是造成調(diào)試?yán)щy的客觀上的原因,使匯編語(yǔ)言的調(diào)試工具落后。
二、發(fā)揮多媒體優(yōu)勢(shì),增強(qiáng)教學(xué)效果
據(jù)統(tǒng)計(jì),人們獲取的外界信息中,83%來自視覺,11%來自聽覺,3.5%來自嗅覺,1%來自味覺,1.5%來自觸覺。因此在電子教案的設(shè)計(jì)中,應(yīng)充分發(fā)揮視聽多媒體的優(yōu)勢(shì),通過動(dòng)靜的配合、色彩的搭配以及突出概念特征等方法,使枯燥的內(nèi)容變得生動(dòng)活潑,吸引學(xué)生的注意力,從而提高教學(xué)效果。
匯編語(yǔ)言程序設(shè)計(jì)是從事計(jì)算機(jī)研究的基礎(chǔ),是計(jì)算機(jī)研究和應(yīng)用的技術(shù)人員必須掌握的一門技術(shù)。匯編語(yǔ)言是一種助記符形式的語(yǔ)言,它比機(jī)器語(yǔ)言容易掌握和運(yùn)用。但是,匯編語(yǔ)言仍然是面向機(jī)器的語(yǔ)言,匯編語(yǔ)言程序設(shè)計(jì)需要掌握CPU的組織結(jié)構(gòu)、存貯器組織、信息在計(jì)算機(jī)內(nèi)部的表示、指令系統(tǒng)、尋址方式等知識(shí),內(nèi)容瑣碎,知識(shí)點(diǎn)多,相對(duì)高級(jí)語(yǔ)言程序設(shè)計(jì)語(yǔ)言而言,學(xué)生顯得較難掌握。我們?cè)谥v解該課程時(shí),充分利用多媒體的特點(diǎn),改革教學(xué)方法,擴(kuò)大教學(xué)信息量,詳細(xì)演示匯編語(yǔ)言各種開發(fā)工具的使用,讓抽象內(nèi)容直觀化,可以使教學(xué)內(nèi)容形象、具體。這不僅可以更好地吸引學(xué)生的注意力,而且可以加深學(xué)生的理解,使學(xué)生很好地掌握了匯編語(yǔ)言的特點(diǎn),匯編語(yǔ)言的應(yīng)用,收到了很好的效果。
1.硬件內(nèi)容的教學(xué)。計(jì)算機(jī)硬件有CPU、內(nèi)存、接口等組成,在教學(xué)中,首先,我們給出抽象的原理框圖,然后給出8086CPU、內(nèi)存條、顯卡等實(shí)物和照片,在此基礎(chǔ)上去講解CPU組織結(jié)構(gòu)、存貯器組織結(jié)構(gòu)、接口的組織結(jié)構(gòu)及其相互聯(lián)系,特別是內(nèi)存訪問時(shí)物理地址的形成過程,利用動(dòng)畫技術(shù)可以使學(xué)生加深理解內(nèi)存的分段方法、段地址、偏移地址、邏輯地址、物理地址、有效地址等抽象概念。
2.尋址方式和指令系統(tǒng)的教學(xué)。在多年的匯編語(yǔ)言教學(xué)中,深深體會(huì)到尋址方式是學(xué)好匯編語(yǔ)言最重要的內(nèi)容,也是一個(gè)難點(diǎn),學(xué)生非常不容易掌握,但一旦掌握了,對(duì)學(xué)習(xí)指令系統(tǒng)乃至學(xué)好整個(gè)匯編語(yǔ)言課程起著重要的作用,在教學(xué)中,我們充分利用多媒體教學(xué)手段,演示8086CPU 七種尋址方式以及8086指令系統(tǒng)各條指令的含義、應(yīng)用,為匯編語(yǔ)言程序設(shè)計(jì)打下很好的基礎(chǔ),收到了良好的效果。
3.子程序和宏指令的教學(xué)。匯編語(yǔ)言程序的結(jié)構(gòu)有順序、分之、循環(huán)、子程序、宏指令五種結(jié)構(gòu),其中子程序是實(shí)現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的基礎(chǔ),也是匯編語(yǔ)言教學(xué)過程中的難點(diǎn)和重點(diǎn),有關(guān)子程序的內(nèi)容包括子程序定義、子程序的調(diào)用、子程序參數(shù)傳遞的方法(利用寄存器、利用內(nèi)存單元、利用堆棧)。子程序執(zhí)行過程中也需要保護(hù)斷點(diǎn)地址、保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。宏指令有關(guān)的內(nèi)容包括宏定義、宏調(diào)用、宏展開。教師可利用多媒體技術(shù)展示子程序調(diào)用的執(zhí)行過程、子程序參數(shù)傳遞的過程以及子程序和宏調(diào)用的區(qū)別,幫助學(xué)生理解程序的執(zhí)行過程,提高匯編語(yǔ)言程序設(shè)計(jì)的能力。
三、利用多媒體,演示匯編語(yǔ)言各種開發(fā)工具的使用
匯編語(yǔ)言的調(diào)式工具有:DOS程序的調(diào)試工具DEBUG和CV、宏匯編MASM611、MASM32使用、W32Dasm使用。
DEBUG.EXE是DOS提供的可用于調(diào)試可執(zhí)行程序的一個(gè)工具軟件,是學(xué)習(xí)匯編語(yǔ)言程序調(diào)試的一個(gè)基礎(chǔ),有關(guān)它的一些命令的使用必須熟練掌握。必須掌握的內(nèi)容包括DEBUG的啟動(dòng)和退出,常用的DEBUG子命令,如A、U、R、D、G、T、P、E、N、L、W等的使用。
宏匯編MASM6.11是目前最常用的匯編語(yǔ)言編程環(huán)境,其命令行方式上機(jī)操作過程分為四步:編輯源程序、匯編源程序、連接目標(biāo)程序、調(diào)試運(yùn)行可執(zhí)行程序。編輯源程序可以使用計(jì)算機(jī)系統(tǒng)中任何能編輯文本文件的編輯器來編輯匯編語(yǔ)言的源程序。常用的編輯程序有:EDIT.EXE、記事本;當(dāng)源程序編寫好后,可用MASM命令或ML/c命令來匯編該源程序;連接目標(biāo)程序用LINK.EXE程序完成;最后調(diào)試運(yùn)行可執(zhí)行程序,如果我們?cè)诔绦蛑袥]有編寫結(jié)果輸出程序,只是把結(jié)果放在了內(nèi)存單元中或CPU內(nèi)部的寄存器中,就需要使用Debug調(diào)試程序查看結(jié)果,或者當(dāng)程序的運(yùn)行結(jié)果達(dá)不到預(yù)期結(jié)果時(shí),也需要使用調(diào)試程序,找出錯(cuò)誤的語(yǔ)句或邏輯關(guān)系。MASM系統(tǒng)提供了用于源程序一級(jí)的調(diào)試工具CV(CodeView)。
Masm32是Windows下用匯編語(yǔ)言開發(fā)32位程序的工具。Masm32的原代碼編輯、編譯的程序是Qeditor.exe。要用匯編語(yǔ)言編寫使用API函數(shù)和帶有圖形界面窗口GUI的程序,需要使用Masm32。
Windows下的反匯編工具分為靜態(tài)和動(dòng)態(tài)反匯編。常用的靜態(tài)反匯編工具是W32Dasm。
W32Dasm的主要功能有:保存反匯編文本文件和創(chuàng)建方案文件;跳轉(zhuǎn)到代碼的某個(gè)位置;查看導(dǎo)入、導(dǎo)出函數(shù);以二進(jìn)制方式查看數(shù)據(jù)段和代碼段數(shù)據(jù);資源定位。
本文為河南工業(yè)大學(xué)校科研基金項(xiàng)目,項(xiàng)目編號(hào)08XGG022。
參考文獻(xiàn)
[1]趙樹聲,楊建軍.DOS/Windows匯編語(yǔ)言程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2005.
[2]沈美明,溫冬嬋.IBM-PC匯編語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.