匯編語言程序設計課程改革的幾個問題
發(fā)布時間:2019-08-06 來源: 短文摘抄 點擊:
摘要:從匯編語言程序設計在計算機相關專業(yè)課程體系中的地位與作用出發(fā),說明在新形勢下繼續(xù)開設這門課程的一些基本問題,包括地位與作用、定位與內(nèi)容、重點與難點以及方法與評價等,闡述在教學中應當采取怎樣的對策以解決這類問題。
關鍵詞:匯編語言;程序設計;課程改革
引 言
匯編語言程序設計作為一門獨立的課程在誕生之初,一直是各高校計算機專業(yè)的一門專業(yè)必修課。近年來,國內(nèi)一些高校(尤其是重點高校)的計算機相關專業(yè)在進行培養(yǎng)方案修訂時,大都對這門課程做了較大調(diào)整。有些學校將其由必修課改成選修課,有些學校將其課時做了較大壓縮,有些學校甚至干脆取消這門課。
1 地位與作用問題
匯編語言程序設計在所有專業(yè)課(含專業(yè)基礎課)中具有獨特的地位與作用。一直以來,計算機及其應用系統(tǒng)的構成基本上分為硬件和軟件兩大塊,計算機相關專業(yè)所涵蓋的學科理論知識與工程技術也相應地分為硬件和軟件兩大塊。受此影響,在人才培養(yǎng)實踐中,計算機相關專業(yè)所開沒的基礎課程也主要圍繞這兩大塊展開。硬件主要有電子技術基礎、數(shù)字邏輯、計算機組成原理、系統(tǒng)結構等,而軟件主要有數(shù)據(jù)結構、高級語言程序設計、操作系統(tǒng)、數(shù)據(jù)庫等。
從硬件和軟件的關系看,計算機及其應用系統(tǒng)的工作以硬件為基礎,卻以軟件為動力,硬件和軟件密不可分,硬件要靠軟件驅(qū)動。一般而言,以計算機系統(tǒng)為核心的應用開發(fā)必須是硬件開發(fā)和軟件開發(fā)同時伴隨,因此有些課程注定要同時圍繞硬件和軟件兩方面展開,如匯編語言程序設計、接口技術、單片機、嵌入式系統(tǒng)等。
在所有這些軟件和硬件緊密結合的課程中,匯編語言程序設計又是基礎課。通過學習匯編語言程序設計,學生不僅可以更加透徹地理解在其他課程中學習過的有關知識,更加深入地了解計算機系統(tǒng)的內(nèi)部工作機制,而且能為后續(xù)接口技術、單片機、嵌入式系統(tǒng)等課程的學習打下堅實基礎。
總之,匯編語言程序設計把硬件和軟件有機地緊密結合在一起,能讓學生對傳統(tǒng)意義上的兩大塊有一個更全面同時也更深入的認識和理解。鑒于以上認識,筆者認為各高校計算機相關專業(yè)在進行培養(yǎng)方案修訂時不宜完全取消匯編語言程序設計這門課程。
2 定位與內(nèi)容問題
程序設計語言經(jīng)歷了機器語言、匯編語言、高級語言等發(fā)展階段。從編程效率看,匯編語言不及高級語言,但從語言的整體功能看,匯編語言比高級語言要強,通俗點說就是指高級語言能做到的事,匯編語言都能做到,但反過來則未必。
高級語言程序設計的主要內(nèi)容包括兩部分:高級語言和程序設計。匯編語言程序設計也不例外,其主要內(nèi)容也由兩部分構成:匯編語言和程序設計。事實上,不管學習什么語言程序設計,主要內(nèi)容就是兩個:程序設計的基本思想方法和語言本身。
由于語言只是程序的載體,是程序設計的工具,因此第1個內(nèi)容即程序設計的思想方法是相通的。鑒于此,匯編語言程序設計的教學應該以匯編語言本身為重點,即匯編語言為程序設計提供的各個元素及其應用,內(nèi)容應該包括數(shù)據(jù)表示、數(shù)據(jù)安排、尋址方式、指令系統(tǒng)、程序結構、流程控制、參數(shù)傳遞、中斷調(diào)用、數(shù)據(jù)處理等;而其定位應該是讓學生掌握最基本的知識和能力,一方面讓學生通過學習匯編語言深入理解計算機系統(tǒng)內(nèi)部的工作機制,另一方面能讓學生在必要時借助匯編語言彌補高級語言的功能性不足。
3 重點與難點問題
3.1 數(shù)據(jù)表示問題
計算機的基本功能就是加工處理數(shù)據(jù),數(shù)據(jù)需要存放到計算機系統(tǒng)中。實際應用中的數(shù)據(jù)豐富多彩,具有各種不同的類型;而計算機中的數(shù)據(jù)則單調(diào)得多。應用中各種不同類型的數(shù)據(jù)如何在計算機中以恰當?shù)男问奖硎境鰜,就是程序設計面臨的首要問題。
數(shù)據(jù)在計算機中的表示有多種方法,不同方法有各自的優(yōu)缺點,適用于不同的應用要求;旧蟻碚f,計算機系統(tǒng)對數(shù)據(jù)的加工處理主要是數(shù)據(jù)運算和數(shù)據(jù)輸入輸出。為了節(jié)約存儲空間,我們一般比較喜歡2進制代碼長度比較小即2進制代碼比較短的表示方法。在2進制代碼長度方面,數(shù)值數(shù)據(jù)的代碼表示一般不如其2進制表示。
計算機對數(shù)值數(shù)據(jù)最重要的加工處理就是算術運算,為了方便運算,我們比較喜歡2進制表示,即在運算方面數(shù)值數(shù)據(jù)的2進制表示要優(yōu)于其代碼表示。采用2進制表示的主要問題是溢出,但這同時也是代碼表示的主要問題之一。此外,代碼表示即使沒有溢出,也可能得到錯誤的結果。計算機對數(shù)據(jù)進行加T處理時,加工處理之前要輸入原始數(shù)據(jù),加工處理之后要輸出結果數(shù)據(jù),我們當然希望采用比較有利于輸入/輸出的表示法。在這方面,數(shù)據(jù)的代碼表示要比其2進制表示好。
代碼形式的數(shù)據(jù)在輸入/輸出時只需要采用簡單的移位操作即可實現(xiàn),因為每一位上的數(shù)都有同樣長度的代碼,而且數(shù)據(jù)在輸入/輸出時本身就是通過代碼進行標識。例如,在西文環(huán)境中普遍采用ASCII碼標識每一個常用字符,因此ASCII碼形式的數(shù)值數(shù)據(jù)在輸入/輸出時特別有優(yōu)勢:輸出時只需要8位8位的進行分割,就可以得到每一位上的數(shù),而且不需要做任何轉(zhuǎn)換就可以送往輸出設備輸出;輸入時不需要做任何轉(zhuǎn)換,只需要8位8位的進行拼接,就可以得到整個數(shù)。如果是2進制形式,則要麻煩得多:輸出時需要通過除法等分離出每一位上的數(shù),然后轉(zhuǎn)換成ASCII碼后才能送往輸出設備輸出;輸入時需要將ASCII碼轉(zhuǎn)換成對應的一位數(shù),然后通過乘法和加法等拼成一個整體。
總之,學生要學會在深刻理解并熟練掌握各種數(shù)據(jù)表示方法的基礎上,善于根據(jù)需要靈活選擇合適的數(shù)據(jù)表示方法。這一部分的教學內(nèi)容主要是介紹基本的數(shù)據(jù)表示方法及各自的優(yōu)缺點,尤其注重學生對各種表示方法的理解。
3.2 尋址方式問題
計算機的工作由程序驅(qū)動,而概括地說,程序又是加工處理數(shù)據(jù)的。不管是程序加丁.處理的數(shù)據(jù),還是程序本身,在程序執(zhí)行時都要存放到仔儲器巾。
程序在執(zhí)行過程中,需要不斷地從存儲器中取指令和數(shù)據(jù),往存儲器中存數(shù)據(jù),這就面臨一個非常重要的問題——尋址。從應用層面看,程序有結構問題:順序結構、分支結構和循環(huán)結構等;而數(shù)據(jù)也有結構問題:一維結構、二維結構、三維結構等。不同的程序結構和數(shù)據(jù)結構對尋址方式的要求不一樣,為了滿足這種差異性,系統(tǒng)必須提供多種不同的尋址方式。
熱點文章閱讀