亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        問題牽引的匯編語言教學(xué)實(shí)踐

        2009-12-11 07:27:04許向陽王元珍
        計(jì)算機(jī)教育 2009年18期
        關(guān)鍵詞:匯編語言寄存器建構(gòu)主義

        許向陽 王元珍

        摘要:沒有問題就是最大的問題。培養(yǎng)學(xué)生發(fā)現(xiàn)問題、提出問題、解決問題的能力是教學(xué)改革的重要內(nèi)容。本文介紹了匯編語言教學(xué)活動中提出的系列問題,通過教師的示范、引導(dǎo)和鼓勵,在輕松和諧的師生交流環(huán)境中將知識學(xué)習(xí)和思維能力培養(yǎng)有機(jī)的統(tǒng)一起來。

        關(guān)鍵詞:匯編語言;寄存器;思維能力;建構(gòu)主義

        中圖分類號:G642文獻(xiàn)標(biāo)識碼:B

        1引言

        沒有問題就是最大的問題。沒有問題的安逸如同沒有引爆的地雷一樣危險。在滿堂灌輸、不與學(xué)生交流和溝通的教學(xué)模式下,學(xué)生只是被動的接收知識,其發(fā)現(xiàn)問題的能力、提出問題的勇氣、解決問題的追求、尋根問底的態(tài)度在悄無聲息的受到摧殘。久而久之,學(xué)生成為了一個無所思無所想的機(jī)械,失去了思維的活力、想象的活力、創(chuàng)造的活力。

        問題的提出是解決問題的開始。圍繞某一知識點(diǎn)提出一系列的問題,在師生互動中解決這些問題,能夠?qū)⒅R學(xué)習(xí)和能力培養(yǎng)有機(jī)的結(jié)合在一起。這種教學(xué)方法是建構(gòu)主義理論實(shí)踐的具體體現(xiàn)。建構(gòu)主義認(rèn)為認(rèn)識是一種以主體已有的知識、經(jīng)驗(yàn)、認(rèn)知結(jié)構(gòu)、心理結(jié)構(gòu)等為基礎(chǔ)的主動建構(gòu)過程,堅(jiān)信知識是由認(rèn)知主體主動建構(gòu)的結(jié)果,學(xué)習(xí)是認(rèn)知主體的一個意義建構(gòu)的過程,教學(xué)是培養(yǎng)學(xué)生主體性的創(chuàng)造活動,是引導(dǎo)學(xué)生從原有的知識經(jīng)驗(yàn)中生長出新的知識經(jīng)驗(yàn)的過程,教師應(yīng)是學(xué)生主動建構(gòu)意義的促進(jìn)者、合作者和指導(dǎo)者。

        本文以匯編語言的最基礎(chǔ)內(nèi)容——寄存器教學(xué)實(shí)踐為例,介紹教學(xué)過程中提出的一系列問題。通過問題的牽引,教師與學(xué)生、學(xué)生與學(xué)生之間的互動,將有關(guān)知識組織組成網(wǎng)絡(luò),開闊學(xué)生的眼界,培養(yǎng)學(xué)生主動求知的技能、態(tài)度與習(xí)慣。

        2數(shù)據(jù)寄存器教學(xué)中問的問題

        數(shù)據(jù)寄存器是學(xué)習(xí)匯編語言時學(xué)生最早接觸的內(nèi)容,單純的介紹有哪些寄存器(名稱、大小),各個寄存器的含義(常用用法),學(xué)生們會覺得寄存器很抽象,既不知道寄存器有何實(shí)際用途,也不知道如何使用寄存器。我們通過系列問題的牽引,從不同角度不同側(cè)面來解讀寄存器,將新知識和已有知識組織成一個網(wǎng)絡(luò)。

        (1) 為什么要設(shè)置寄存器?

        通過“CPU執(zhí)行一個加法指令”的具體應(yīng)用場景來引導(dǎo)學(xué)生回答。CPU要執(zhí)行一個加法操作,就需要從內(nèi)存取兩個操作數(shù),CPU能夠一次性地取來兩個操作數(shù)嗎?答案是不能,地址總線、數(shù)據(jù)總線上一次只能加載一個單元的地址和數(shù)據(jù)。先取到的數(shù)據(jù)放在何處呢?類比生活中車站、超市的寄存處,學(xué)生能自然而然的接受寄存器的概念。

        (2)CPU的執(zhí)行部件中有哪些寄存器呢?32位的寄存器是什么含義?

        這些問題的回答是寄存器教學(xué)的基本內(nèi)容,在匯編語言教材上都有較詳細(xì)的介紹。但是我們在教學(xué)時對有些內(nèi)容進(jìn)行了簡化,避免一次性引入過多的概念。

        (3) 寄存器為何能記住0、1呢?

        直接回答該問題已超出了本門課程的范疇。但為了激發(fā)同學(xué)們的好奇心,有必要提出該問題。同時指出計(jì)算機(jī)組成原理將會回答該問題,使學(xué)生感受課程間的一些聯(lián)系。

        (4) 如何使用寄存器?

        用一個指令實(shí)例說明一種給寄存器賦值的方法。例如:MOV EAX, 12345678H。之后,一個接著一個地提出寫完成某功能的指令問題。遵循循序漸進(jìn)、由淺入深的原則,使學(xué)生能夠模仿實(shí)踐(學(xué)生自己寫指令)、能夠在和已有知識關(guān)聯(lián)中給出答案,在問答互動和鼓勵中,建立信心,鞏固所學(xué)知識、開啟靈活應(yīng)用之門,開闊思路和眼界。

        ① 如何將EAX的低16位全部置成0?

        ② 如何將EAX的低8~15位全部置成1?

        ③ 有無其他將EAX的低16位全部置成0的方法?

        ④ 如何將EAX的高16位全部置成0?

        ⑤ 如何將EAX的第30位置成0?

        ⑥ 如何將EAX的第30位置成1?

        在此過程中,一方面使學(xué)生記牢32位寄存器、16位寄存器、8位寄存器之間的相互關(guān)系,另一方面調(diào)動學(xué)生積極性,思考實(shí)現(xiàn)各功能的辦法。教師作為引導(dǎo)者只是進(jìn)行必要的啟發(fā)提醒。與此同時,同學(xué)們看到了算術(shù)運(yùn)算(減法)、邏輯運(yùn)算(XOR、AND、OR)、移位操作、數(shù)據(jù)傳送(借助其他寄存器)等方法的指令。建立實(shí)現(xiàn)某一種功能的指令多樣性概念,破除指令寫法僵化單一的迷信。在應(yīng)用中熟悉了指令的功能和寫法,在寫指令的過程中強(qiáng)化了記憶。

        (5) 通用寄存器又為何給予特定含義的名稱?

        我們以一個生活場景來進(jìn)行類比,講解通用性與常用性的關(guān)系。飲水的杯子作為一種容器,它可以用來裝可樂、裝牛奶、葡萄酒,這就是容器的通用性,但我們一般只有它來喝水,即常用性?!捌咸衙谰埔构獗?用茶杯喝紅葡萄酒就難顯現(xiàn)品酒的情趣和情調(diào)。類比CPU里要計(jì)算一組連續(xù)數(shù)的和,涉及到和、加法的次數(shù)、加數(shù)的位置等信息的存放,需要不同的寄存器。各種信息分別存放到什么寄存器中?從寄存器的通用性角度來看,可用累加器EAX來保存計(jì)數(shù)值,用計(jì)數(shù)器ECX來保存和等。同時指出不需要這樣標(biāo)新立異,而要注重約定俗成,注意程序的可讀性和可理解性。當(dāng)然,也可以指出在某些指令中是要專用某些寄存器的。

        計(jì)算機(jī)作為人類史上的杰出人造產(chǎn)物,其設(shè)計(jì)之中有很多優(yōu)美的地方,值得我們品味和欣賞、借鑒和學(xué)習(xí),其中寄存器的命名、指令的命名都能很好地表達(dá)“望文生義”的理念。解讀這些理念是對學(xué)生欣賞能力的一個熏陶,也是人文和科技和諧統(tǒng)一的具體體現(xiàn)。

        (6) 寄存器在什么時候使用呢?

        雖然前面已從原理上分析了寄存器存在的必要性,但在一般的C語言程序中并沒有直接使用到寄存器。因此,我們使用VC++6.0環(huán)境下的調(diào)試工具顯示一個C語言程序及其對應(yīng)的機(jī)器碼,如圖1所示,很清楚地展現(xiàn)寄存器在被不停地使用著,寄存器這些程序運(yùn)行必不可少的幕后英雄走上了前臺。學(xué)生能夠初步看到編譯器的杰作。

        在閱讀“z=x+y; a[x]=100”等語句對應(yīng)的機(jī)器指令時,請同學(xué)猜測各指令的功能。在機(jī)器指令的單步執(zhí)行中,觀察寄存器的變化,在互動中鞏固前面所學(xué)知識,極大地消除了對匯編語言、指令、寄存器等的神秘感。

        (7) 能否現(xiàn)在動手體會一下所學(xué)內(nèi)容呢?

        從學(xué)習(xí)寄存器開始就可以使用調(diào)試工具來寫一些指令,然后執(zhí)行這些指令,觀察指令的執(zhí)行結(jié)果,并不需要有完整的程序才能使用調(diào)試工具。調(diào)試器TD的用法在文獻(xiàn)[5]中有較詳細(xì)的介紹。

        (8) 如何理解寄存器中0、1的含義?

        學(xué)生在前面課程的學(xué)習(xí)中,從宏觀的角度建立了計(jì)算機(jī)程序復(fù)雜、應(yīng)用靈活、表象豐富的概念。而在匯編語言課程中,將從微觀的角度揭示計(jì)算機(jī)工作簡單、呆板的一面。在學(xué)習(xí)匯編語言之時,學(xué)生要轉(zhuǎn)變觀點(diǎn),以機(jī)器的角度去考慮問題,把自己當(dāng)成一個CPU,理解計(jì)算機(jī)工作的本質(zhì)。這會引發(fā)許多值得深思的問題。

        首先,讓學(xué)生牢固建立計(jì)算機(jī)世界是0、1世界的觀點(diǎn),認(rèn)識計(jì)算機(jī)是一個編碼的世界,人世間的萬事萬物映射到計(jì)算機(jī)中都是0、1,就如豐富多彩的物質(zhì)世界只由有限化學(xué)元素組成一樣。復(fù)雜的對象由簡單的元素排列組合而成。其次,建立計(jì)算機(jī)(CPU)是機(jī)械工作的觀點(diǎn),它是按部就班的處理指令,當(dāng)根據(jù)CS:EIP取出指令后,才依序確定指令各成份的含義,進(jìn)行解釋和操作,改變EIP,就會看到指令都發(fā)生了變化。這也就是說,0和1代表的含義和作用是在程序運(yùn)行時才體現(xiàn)出來的,具有動態(tài)性和角色轉(zhuǎn)換性,例如對于文件拷貝程序、病毒程序而言,被拷貝或感染的程序只是作為一個數(shù)據(jù)對象;而在運(yùn)行時,指令的各組成成份依其位置起到操作碼、地址碼、操作數(shù)等作用。第三,計(jì)算機(jī)并不關(guān)心0、1串對應(yīng)現(xiàn)實(shí)世界對象的含義,而只是機(jī)械的處理;而對于編程者和程序閱讀者,他們會關(guān)心各對象代表的含義,他們達(dá)成一致性的理解是得益于對象出現(xiàn)的場景和雙方的約定,這也是人們編寫和閱讀程序的基礎(chǔ)。

        3其他寄存器教學(xué)中問的問題

        與數(shù)據(jù)寄存器教學(xué)一樣,我們也通過一系列問題來引導(dǎo)學(xué)生思考,學(xué)生在思考中尋求問題的答案,逐步加深對計(jì)算機(jī)工作基本原理的理解。

        (1) 指令的地址放在何處?

        (2) 改變EIP的值,TD代碼區(qū)有何變化?TD的數(shù)據(jù)區(qū)有無變化?

        (3)C語言程序變量的定義和處理語句是混在一起的,在其對應(yīng)的機(jī)器語言程序中,它們所占空間在一起嗎?

        從取指令、EIP自動更新的方法、計(jì)算機(jī)基本的工作過程分析,不難給出其答案。將數(shù)據(jù)所占的存儲空間與指令所占的存儲空間分開,又是編譯器編譯時的功勞。該問題的解答自然會引出分段的概念。

        (4) 在指令中出現(xiàn)的地址能夠是物理地址嗎?有必要是物理地址嗎?

        (5) 在調(diào)度程序運(yùn)行時,指令之間的相對位置會發(fā)生變化嗎?

        (6) 能用16位的寄存器存放20位的段開始位置的物理地址嗎?

        (7) 段從內(nèi)存的何處開始?段的首地址放在何處?

        教學(xué)實(shí)踐表明,學(xué)生在一個一個問題中受到了啟發(fā),問問題和解答問題的能力和習(xí)慣逐步得到了強(qiáng)化,課堂充滿了活力和生機(jī),激發(fā)了探究式學(xué)習(xí)的熱情。

        4結(jié)束語

        學(xué)習(xí)過程中最大的問題是沒有問題。一個無所思無所想的機(jī)械是沒有創(chuàng)造活力的。興趣是最好的老師,而體現(xiàn)興趣的一個重要方面就是心中存有“為什么、是什么、怎么樣、行不行、可以嗎”等問題。示范、引導(dǎo)、鼓勵學(xué)生從多角度多視野來問問題,培養(yǎng)學(xué)生細(xì)致入微的觀察能力,深刻全面的分析能力,使學(xué)生逐步養(yǎng)成主動求知的態(tài)度與習(xí)慣,這都將為創(chuàng)新活動奠定良好的基礎(chǔ)。

        參考文獻(xiàn):

        [1] 江珊. 沒有問題就是最大的問題[M]. 北京:新華出版社,2009.

        [2] 張建偉,陳琦. 從認(rèn)知主義到建構(gòu)主義[J]. 北京師范大學(xué)學(xué)報:社會科學(xué)版,1996(4):75-82.

        [3] 王曉茜. 建構(gòu)主義教學(xué)論探析[J]. 科學(xué)探索,2006(11):30-31.

        [4] 陳威. 建構(gòu)主義學(xué)習(xí)理論綜述[J]. 學(xué)術(shù)交流,2007(3):175-177.

        [5] 許向陽. 80X86匯編語言程序設(shè)計(jì)上機(jī)指南[M]. 武漢:華中科技大學(xué)出版社,2007.

        猜你喜歡
        匯編語言寄存器建構(gòu)主義
        高等學(xué)校計(jì)算機(jī)專業(yè)課程教學(xué)改革實(shí)踐——以匯編語言與接口技術(shù)課程為例
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        旁批:建構(gòu)主義視域下的語文助讀抓手——以統(tǒng)編初中教材為例
        匯編語言與C語言的混合程序設(shè)計(jì)技術(shù)研究
        電子制作(2019年10期)2019-06-17 11:45:16
        借鑒建構(gòu)主義思想培養(yǎng)財(cái)會專業(yè)人才
        提高《匯編語言程序設(shè)計(jì)》教學(xué)效率的思考與實(shí)踐
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        多媒體技術(shù)在建構(gòu)主義教學(xué)模式中的應(yīng)用
        建構(gòu)主義視角下的翻譯標(biāo)準(zhǔn)
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        日本精品一区二区三区在线播放| 亚洲av纯肉无码精品动漫| 国产亚洲欧美成人久久片| 人妻丰满熟妇av一区二区 | 另类欧美亚洲| 精品一区二区三区女同免费| 亚洲最大在线视频一区二区| 亚洲av无码乱码国产精品| 亚欧国产女人天堂Av在线播放 | 久久精品国产精品亚洲艾| 国产爆乳无码一区二区麻豆| 18禁无遮挡无码网站免费| 日韩亚洲欧美精品| 亚洲精品中文字幕不卡| 国产成人小视频| 亚洲暴爽av人人爽日日碰| 亚洲AV无码成人精品区H| 自拍成人免费在线视频| 人妻少妇偷人精品无码| 伊人久久网国产伊人| 亚洲精品熟女乱色一区| 日韩亚洲无吗av一区二区| 少妇av射精精品蜜桃专区| 亚洲国产精品久久久久秋霞1| 国产99久久久国产精品免费| 久久夜色精品国产亚洲av动态图| 福利体验试看120秒| 亚洲中文字幕av天堂| 成人av资源在线观看| 蜜臀av无码人妻精品| 丁香六月婷婷综合| 国产一区二区三区涩涩涩| 老鸭窝视频在线观看| 国产99久久亚洲综合精品| 国产成人精品视频网站| 成人久久黑人中出内射青草| 性大毛片视频| 熟女人妻丰满熟妇啪啪| av在线播放亚洲天堂| 亚洲一区二区三区无码久久| 国产在线不卡AV观看|