• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      問題牽引的匯編語言教學實踐

      2009-12-11 07:27:04許向陽王元珍
      計算機教育 2009年18期
      關鍵詞:匯編語言寄存器建構主義

      許向陽 王元珍

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

      關鍵詞:匯編語言;寄存器;思維能力;建構主義

      中圖分類號:G642文獻標識碼:B

      1引言

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

      問題的提出是解決問題的開始。圍繞某一知識點提出一系列的問題,在師生互動中解決這些問題,能夠將知識學習和能力培養(yǎng)有機的結合在一起。這種教學方法是建構主義理論實踐的具體體現(xiàn)。建構主義認為認識是一種以主體已有的知識、經驗、認知結構、心理結構等為基礎的主動建構過程,堅信知識是由認知主體主動建構的結果,學習是認知主體的一個意義建構的過程,教學是培養(yǎng)學生主體性的創(chuàng)造活動,是引導學生從原有的知識經驗中生長出新的知識經驗的過程,教師應是學生主動建構意義的促進者、合作者和指導者。

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

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

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

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

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

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

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

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

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

      (4) 如何使用寄存器?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3其他寄存器教學中問的問題

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

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

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

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

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

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

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

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

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

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

      4結束語

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

      參考文獻:

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

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

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

      [4] 陳威. 建構主義學習理論綜述[J]. 學術交流,2007(3):175-177.

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

      猜你喜歡
      匯編語言寄存器建構主義
      高等學校計算機專業(yè)課程教學改革實踐——以匯編語言與接口技術課程為例
      計算機教育(2020年5期)2020-07-24 08:52:50
      Lite寄存器模型的設計與實現(xiàn)
      計算機應用(2020年5期)2020-06-07 07:06:44
      旁批:建構主義視域下的語文助讀抓手——以統(tǒng)編初中教材為例
      匯編語言與C語言的混合程序設計技術研究
      電子制作(2019年10期)2019-06-17 11:45:16
      借鑒建構主義思想培養(yǎng)財會專業(yè)人才
      提高《匯編語言程序設計》教學效率的思考與實踐
      分簇結構向量寄存器分配策略研究*
      多媒體技術在建構主義教學模式中的應用
      建構主義視角下的翻譯標準
      高速數(shù)模轉換器AD9779/AD9788的應用
      东乌珠穆沁旗| 新邵县| 灌阳县| 鲁甸县| 阳新县| 武夷山市| 玉龙| 分宜县| 长宁县| 界首市| 伊吾县| 石屏县| 吴忠市| 雷州市| 长岛县| 二连浩特市| 克山县| 堆龙德庆县| 鲁山县| 蓬莱市| 葫芦岛市| 增城市| 和静县| 万年县| 阳春市| 潞西市| 拉萨市| 邹平县| 淄博市| 普宁市| 武鸣县| 蕉岭县| 增城市| 上杭县| 治县。| 江达县| 大城县| 明溪县| 台东县| 连山| 贺兰县|