楊振南
(湖南科技學院 計算機與通信工程系,湖南 永州 425100)
微機原理課程是普通高等學校理工科專業的一門重要的計算機技術基礎課程,也是理工科學生學習和掌握計算機硬件基礎知識、匯編語言程序設計及常用接口技術的入門課程[1]。其課程內容雜碎、概念抽象、原理缺少理論證明。為了達到應用性人才培養的目標,我校把該課程提前到大學二年級學習,學生初次接觸數字系統,普遍感覺到專業術語多,理解和學習困難,而且由于集成電子技術的高度發達,在實際應用和教學中都無法看見處理器的內部結構,從而造成,在學習的過程中學習目的不明確,學習興趣不高,理解困難等現象。如何激發學習興趣,降低學習難度是微機原理教學中需要不斷改進和提高的。作者經過多年的微機原理教學實踐和思考,發現在課堂上充分利用聯想法和類比法可以有效的幫助學生理解和掌握教學內容,并且在一定程度上激發學生的學習興趣。現將教學中用到的一些例子介紹如下:
當學生在第一次看見一些專用術語時,我們鼓勵學生根據字面意義進行聯想。然后再把書本的知識和聯想到的內容進行關聯和對比分析。由此可以培養學生的自學能力和創新能力。
堆棧是一個學生從沒有見過的詞。拆開成堆和棧后,可以鼓勵學生展開聯想。看見堆通常會聯想到土堆,書堆,草堆等,而它們都是有堆疊的特點。棧,比較少見,但是古代用得多,就是客棧。而客棧是用來給人住宿的。如果把人聯想成貨物,房間變成貨柜,那就很容易理解棧的意思了。再把堆棧聯合起來理解,就容易知道,堆棧:就是通過堆疊的方式來存放貨物的場所。在微機系統中,堆棧就是以堆疊的方式來存放數據的存儲空間。聯想草堆,書堆就容易發現,下面的東西最先堆上去,卻最后才能被取出,即具有先進后出的特點。微機原理中的堆棧最重要的特點就是先進后出。數據存入堆棧叫入棧,從堆中取出叫出棧。入棧和出棧又分別叫做壓棧和彈出,后面這兩個詞很形象的表達了堆棧中數據出入堆棧,指針自動更新的特點。如果能夠聯想到手槍的彈夾,聯想到壓入子彈和彈簧彈出子彈,就可以很容易記住壓棧和彈出這兩詞了,后面討論堆棧指針就會很輕松了。
看到這個詞,學生很容易聯想警察辦案的事故現場的保護。這時我們可以借機鼓勵學生思考,為什么要保護現場,如何保護。警察保護現場和微機原理中的保護現場會有哪些相似之處。警察保護現場是為了保護事故中的一些物品和證據不被破壞,以備以后調查和取證使用。微機系統中的保護現場就是要保護一些數據不被破壞或弄丟,以備以后使用。警察保護現場的方式是把場地圍起來,如果該場地上有更重要更緊急的活動要開展,比如要拍電影,這時該怎么保護現場呢。我們可以假設有一個很大的鏟子,可以原封不動的一次性把事故現場這塊地皮鏟到別處,那么該地就可以用來拍電影了。待電影拍完后,又把鏟走的地皮鏟回來,就恢復了現場,從而起到保護現場的作用。在微機系統的現場保護與此類似,處理器在執行子程序之前,通過把主程序的斷點地址,寄存器中的數據,狀態位的數據都搬到堆棧中,待子程序執行完后,再從堆棧中把數據搬回到寄存器和狀態位中,以實現保護現場和恢復現場。
陷阱是用來捕獵的,單步似乎是一步一步走路的意思。這是學生看見這兩個詞的直接理解。在課堂上,教師可以把程序的一次執行比作學生下課后從教室去食堂。在正常情況下,學生直接從教室走到食堂,我們看到的結果就是學生在教室出現然后在食堂出現。中間發生了什么,我們完全不知道。如果我們想要知道學生在路上發生了什么,我們就可以在學生的行走路線上設置陷阱,這樣學生就會掉入陷阱無法前進,同樣的道理,我們給處理器置位陷阱標志位,則程序會暫停;為了學生繼續前進,需要有人把他從陷阱里面救出來,然后繼續前進,如果每走一步前面都設置了陷阱,則每次都需要人去營救,那么該學生從教室到食堂的整個過程就不再連續,而是一步一步走過去的,叫做單步前進。同樣如果微機系統中陷阱標志一直有效,則程序總是執行一句就會暫停,等待用戶操作后才能執行下一步,也叫單步執行程序。而單步執行的好處就是在程序執行的每一個步驟中,我們可以看見處理器各個模塊的工作狀態和數據的變化,就像單步從教室走到食堂的學生在路上發生的所有細節都可以清楚的看到一樣。
除以上例子外,在微機原理其他知識點的學習中,都有可能通過字面進行聯想,也可以鼓勵學生去聯想,把專業的術語與實際生活的事物聯想起來進行分析和學習,因為微機原理是介紹由人發明的一個裝置,是一門技術課[2],它的許多術語本身就可能是根據生活中事物聯想而來的。此外,還可以鼓勵學生在以后的程序編寫和硬件設計中,也要盡量用一些容易聯想和理解的詞語作為變量和信號名稱。
微機原理中的一些知識點非常抽象,與硬件相關難于理解,在課堂上通過類比一些生活中的例子可以有效的幫助學生快速理解和記住。
把處理器執行程序類比成老師在課堂上講課,正常情況下老師連續的講課,但有的時候老師會暫停講課而干點其他的事,比如喝水,解決學生的提問,接待教室外的客人等,然后老師接著前面的內容繼續講。在這個例子中,老師類比成處理器,講課類比成主程序的執行,那么老師暫停講課去干其他事,就是叫老師講課的中斷。這與處理器的中斷的概念非常相似。進一步分析,還可以把喝水,解決學生問題,接待客人等類比成中斷子程序;老師講課被打斷內容的位置類比成斷點;導致老師講課暫停的原因類比成中斷源;還可以把喝水類比成內部中斷,學生舉手提問和教室外有客人咨詢類比成外部中斷;接待客人時又有教務處檢查類比成中斷嵌套。還可以鼓勵學生自己去尋找中斷請求,中斷響應,中斷優先級的類比對象。
這個知識涉及到具體的硬件,而且在本課程后續的教學和實驗中接觸也很少,學生對這個知識的掌握普遍較差。如果把地址類比成學號,把存儲器地址和接口地址類比成不同專業的學生,理解起來就會非常直觀。假設某系大一新生146人,其中計算機科學與技術專業(后簡稱計科)78人和通信工程專業(后簡稱通信)68人。統一編址類比成兩個專業統一編學號,則146個新生的學號為:1到146號。獨立編址類比成各個專業獨立編學號,則計科班新生學號為:1到78號,通信班新生學號為:1號到68號。統一編號的優勢是:不分專業統一對待,操作方便。獨立編號的優勢是:編號的能力強,同樣的編號位數可以管理更多的學生。由此可以類比記憶統一編址和獨立編址的概念及其優缺點。
這個概念非常抽象,學生難于想象和理解。通過把尋址類比成課堂上老師找學生,則可以把抽象具體化。學校對學生的管理是通過學號進行的,學號類似于存儲器的地址;而學生又是有名稱的,類似于寄存器也是有名稱的;尋址過程就是尋找學生的過程,尋址方式就是尋找學生的方法。(1)直接尋址,類比老師叫學生的學號;(2)寄存器尋址,類比叫學生姓名;(3)基址變址尋址,類比課堂上老師叫第幾組第幾位學生,其中組號類比基址,位號類比變址;(4)寄存器間接尋址,類比老師讓班長指定學生;(6)相對尋址,類比老師叫某個同學后面的后第幾位同學。上面提到的尋找學生的方法很靈活,而且各有不同的優點,這與微機系統中的多種尋址方式有很好的可類比性。通過鼓勵學生去思考各種不同的尋址方式的優點和應用場合,還可以提高學生的學習積極性和提升學習成就感。
若把存儲器類比成賓館,則存儲器的許多特性都會有形象的類比對象。數據類比客人;床類比存儲單元;若規定賓館的所有房間床位數都是一樣的,那么每個房間的床位數就類比成了存儲器的字寬;賓館總的床位數就類比成了存儲器的容量;房間號類比成存儲單元的地址;如果某些房間可以分開床位單個出租給客人,則每個床又需要編個床號,這又與儲存器中的按位訪問類似,床號就類比成了位地址。在進行存儲容量擴展時的兩種方式也都有了類比的對象,位擴展類比成增加房間中的床位數,字擴展類比成增加房間的個數。
筆者在微機原理的教學中充分應用聯想法和類比法,在備課時出初學者的角度進行思考,把微機原理課程中的知識與生活中的事例進行聯想和類比。在課堂上通過生活事例來類比講解,并鼓勵學生展開聯想,充分的與學生進行互動教學,獲得了學生的一致認可,幫助大部分同學掌握了相關知識。但是仍然有部分同學由于沒有在課后進行復習而只能停留于老師講的生活事例上,而沒有真正掌握知識。因此微機原理教學仍然需要不斷的改進教學方法。
[1]王克義.非計算機專業微機原理課程的改革實踐與研究[J].計算機教育,2005,(11):37-39.
[2]陳裕國.類比法關聯法在微機原理教學中的應用[J].科技信息,2008,(23):167.
[3]褚向前, 朱武.比喻法類比法在《微機原理》教學中的應用[J].中國科技信息,2007,(8): 188-189.
[4]王志軍,王克義,楊延軍.微機原理教學中幾個問題的探討[J].計算機教育,2010,(7): 64-66.
[5]劉柱鴻.談微機原理與匯編語言的教學改革[J].零陵學院學報,2004,(2):170-171
[6]鄭學堅,周斌.微型計算機原理及應用(第三版)[M].北京:清華大學出版社,2001.