周丹
【摘 要】高級語言程序設(shè)計是一門計算機類專業(yè)的基礎(chǔ)課程,本文以軟件工程專業(yè)為例,分析了該專業(yè)后修課程“微型計算機原理與接口技術(shù)”對該專業(yè)學(xué)生學(xué)習(xí)本課程的影響。提出在學(xué)習(xí)高級語言程序設(shè)計時,結(jié)合本專業(yè)特點,設(shè)計一些小型經(jīng)典案例,幫助學(xué)生更深層次的理解該課程,更好的從事各類軟件的設(shè)計、開發(fā)、維護(hù)、管理工作。
【關(guān)鍵詞】高級語言程序設(shè)計;微型計算機原理與接口技術(shù)
【中圖分類號】TP311.5 【文獻(xiàn)標(biāo)識碼】A
【文章編號】2095-3089(2019)13-0017-02
高級程序設(shè)計語言為軟件工程專業(yè)的學(xué)生學(xué)習(xí)本專業(yè)后續(xù)課程提供了解決方法與實踐工具。優(yōu)秀的軟件設(shè)計開發(fā)者非常注重程序效率,而效率往往與計算機硬件知識和算法緊密相關(guān)。因而學(xué)習(xí)高級語言程序設(shè)計時,需設(shè)計一些后修課程的小型經(jīng)典案例,幫助學(xué)生更深層次的學(xué)習(xí)該課程。
一、結(jié)合微機原理與接口的教學(xué)
計算機隨處可見,但對于初學(xué)高級程序設(shè)計語言學(xué)生,并不一定了解計算機是如何工作的,只有學(xué)生理解計算機工作的原理,才能將程序的本質(zhì)看清楚,激發(fā)學(xué)生學(xué)習(xí)編程的激情。對于高級程序設(shè)計語言的初學(xué)者,往往只是知道如何定義初始化一個變量,但究竟變量是如何存儲數(shù)據(jù)的并不清楚,教師在講解變量的知識時,應(yīng)講解一些存儲器的基本知識。
存儲器是計算機系統(tǒng)中的記憶設(shè)備,用來存放程序和數(shù)據(jù)。對存儲器的要求是容量大、速度快、成本低。為了解決這三方面的矛盾,計算機采用多層次的存儲系統(tǒng),按存取速度快慢:寄存器> Cache > 內(nèi)存 > 硬盤 > 光盤 > 軟盤??梢越Y(jié)合微機原理與接口中存儲器知識分析以下案例。
案例1:假設(shè)有數(shù)組A和B,比較下面兩段程序的區(qū)別。
〖XC40.JPG;%30%30〗
方法1需要訪問4次內(nèi)存,方法2需要訪問2次內(nèi)存。因為大數(shù)據(jù)放在存儲器中,簡單局部變量放在寄存器中,由于CPU對寄存器的存取速度高于內(nèi)存,所以方法2的效率更高。如果學(xué)生僅僅知道使用變量名來存儲數(shù)據(jù),但不知道數(shù)據(jù)究竟存儲在哪里,就不能建立變量與存儲位置的映射關(guān)系,進(jìn)而難以編寫高效率的程序。在講解這塊的知識時候,可結(jié)合存儲器的知識進(jìn)行講解。
在學(xué)習(xí)高級語言程序設(shè)計課程中函數(shù)這部分時,教師會介紹函數(shù)能簡化代碼量、方便維護(hù)、流程清晰明了、易于理解。但相應(yīng)的教師也應(yīng)該介紹函數(shù)調(diào)用會帶來額外的開銷。因此,需要指導(dǎo)學(xué)生合理的利用函數(shù),具體請分析以下案例。
案例2:分析以下案例
〖XC41.JPG;%30%30〗
函數(shù)調(diào)用時,需要進(jìn)行參數(shù)壓棧出棧、寄存器保存、指令跳轉(zhuǎn)等。為了更好的幫助學(xué)生理解函數(shù)調(diào)用帶來額外的開銷,可以引入微機原理與接口里面中斷的知識。兩者大體流程相同:現(xiàn)場保護(hù)->執(zhí)行子程序/中斷服務(wù)函數(shù)->恢復(fù)現(xiàn)場。
入口地址:程序是一組指令,第一條指令的地址稱為程序的入口地址。
中斷和斷口地址:一個程序在執(zhí)行的過程中去執(zhí)行另一個程序,稱之為中斷,程序中斷時的下一條指令的地址稱為程序的斷口地址。
保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場:如果主程序中斷時,有些寄存器還存放著中間結(jié)果,而子程序很有可能要占用這些寄存器,那么就要將主程序的中間結(jié)果存入其他地方(比如堆棧),把寄存器“讓給”子程序,這個過程就是保護(hù)現(xiàn)場。待子程序/中斷服務(wù)函數(shù)完畢,再將主程序的中間結(jié)果放回寄存器,這個過程就是恢復(fù)現(xiàn)場。
子程序/中斷調(diào)用過程。當(dāng)主程序轉(zhuǎn)去執(zhí)行子程序/中斷時,首先將斷口地址壓入堆棧保存,然后將子程序的入口地址送入PC。進(jìn)入子程序后首先保護(hù)現(xiàn)場,然后執(zhí)行子程序,子程序執(zhí)行完畢后,恢復(fù)現(xiàn)場,然后將端口地址從棧頂送回PC。
二、小結(jié)
不同專業(yè)的學(xué)生學(xué)習(xí)高級語言程序設(shè)計,會對這門課程有不同程度和方向的應(yīng)用,對于軟件工程專業(yè)同學(xué)而言,想要成為一名優(yōu)秀的軟件設(shè)計開發(fā)者,僅僅掌握語法知識是不夠的,需要掌握硬件知識以及算法設(shè)計技巧。教師授課時,可以采用小型經(jīng)典的案例調(diào)動學(xué)生學(xué)習(xí)的積極性,提高教學(xué)質(zhì)量,取得良好的教學(xué)效果。
參考文獻(xiàn)
[1]宋維虎.我國職業(yè)教育信息化服務(wù)的內(nèi)涵、層次及其發(fā)展路徑[J].教育與職業(yè),2017,(02):60-64.
[2]張家軍,靳玉樂.論案例教學(xué)的本質(zhì)與特點[J].中國教育學(xué)刊,2004,1(1):48-50.
[3]馬曉敏,姜遠(yuǎn)明,胡光.試論計算機案例教學(xué)的新思路[J].教學(xué)與管理:理論版,2007(2):133-134.
[4]徐安鳳,黃河濤.淺析案例教學(xué)在高校計算機語言課中的應(yīng)用[J].教育與職業(yè),2005(14):38-40.
課題項目:本文系南京郵電大學(xué)通達(dá)學(xué)院教學(xué)改革項目“結(jié)合專業(yè)課培養(yǎng)學(xué)生高級語言程序設(shè)計的應(yīng)用能力”(項目號:JG20318028)南京郵電大學(xué)教學(xué)改革項目“獨立學(xué)院基于應(yīng)用型人才培養(yǎng)的程序設(shè)計語言課程教學(xué)改革”(項目號:JG02115JX14)階段性成果。