欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      教學(xué)設(shè)計:調(diào)用系統(tǒng)子程序

      時間:2019-05-13 01:29:12下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《教學(xué)設(shè)計:調(diào)用系統(tǒng)子程序》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《教學(xué)設(shè)計:調(diào)用系統(tǒng)子程序》。

      第一篇:教學(xué)設(shè)計:調(diào)用系統(tǒng)子程序

      小學(xué)信息技術(shù)六年級下冊 第13課 調(diào)用系統(tǒng)子程序 教學(xué)設(shè)計

      【教學(xué)目標(biāo)】

      1.學(xué)會調(diào)用系統(tǒng)子程序。2.能夠修改調(diào)用的子程序。

      【教學(xué)重點】

      能夠調(diào)用和修改子程序。

      【教學(xué)課時】

      1課時

      【教學(xué)過程】

      在VJC 系統(tǒng)中,保存著一些事先編好的常用子程序。這些子程序叫做系統(tǒng)子程序。利用系統(tǒng)子程序,可以指揮機器人完成奏樂、跳舞等有趣的操作任務(wù)。

      這節(jié)課就來介紹如何調(diào)用系統(tǒng)子程序。

      一、準(zhǔn)備并調(diào)用系統(tǒng)子程序

      在使用系統(tǒng)子程序之前,一般需要先把它們的按鈕圖標(biāo)添加到“程序模塊庫”面板中。然后,用這些按鈕圖標(biāo)在主程序中調(diào)用它們的程序模塊。

      下面將名稱是“do re mi”“歌曲1”“歌曲2”的三個系統(tǒng)子程序的按鈕圖標(biāo)添加到“程序模塊庫”面板中。

      動手做:為主程序準(zhǔn)備三個系統(tǒng)子程序

      1.啟動VJC,打開“程序模塊庫”面板,在打開“新建子程序”對話框。2.選定對話框列表里的“do re mi”選項,單擊確定按鈕。這時,工作區(qū)中會顯示“do re mi”子程序流程圖。

      3.單擊工具欄上的“主程序”按鈕,窗口工作區(qū)中會顯示“主程序”模塊。操作后可以發(fā)現(xiàn),打開的“程序模塊庫”面板中增加了名為“do re mi”的按鈕。

      4.參照以上操作,在“程序模塊庫”面板中再添加系統(tǒng)子程序“歌曲1”“歌曲2”的按鈕。

      準(zhǔn)備好系統(tǒng)子程序后,就可以在主程序中調(diào)用它們了。下面就編一個主程序,來調(diào)用這三個系統(tǒng)子程序。

      動手做:編主程序 1.按下圖編輯流程圖程序。

      2.依次為三個“條件判斷”模塊設(shè)置判斷條件。

      3.以“機器人點歌臺”保存文件。

      4.下載并運行這個程序,依次按機器人的三個碰撞按鈕,聽一聽機器人分別執(zhí)行三個系統(tǒng)子程序時播放的不同樂曲。

      二、修改調(diào)用的子程序

      1.新建流程圖程序。打開“程序模塊庫”面板,再打開“新建子程序”對話框。

      2.參照前面的操作,在“程序模塊庫”面板中添加系統(tǒng)子程序“跟人走”的按鈕。

      3.編下圖所示的主程序,然后下載運行,注意有人靠近時機器人的反應(yīng)。

      4.右擊“跟人走”模塊,打開“子程序調(diào)用模塊”對話框。

      5.單擊“編輯”按鈕,在工作區(qū)中就會顯示“跟人走”子程序的流程圖。6.把程序中的“前進”模塊改為“后退”模塊,如下圖。

      7.以“看人行事”為文件名保存文件。重新下載并運行程序,注意有人靠近時機器人的反應(yīng)與前面有什么不同。

      三、課堂練習(xí)

      第二篇:教學(xué)設(shè)計:自定義子程序

      小學(xué)信息技術(shù)六年級下冊 第14課 自定義子程序 教學(xué)設(shè)計

      【教學(xué)目標(biāo)】

      1.學(xué)會創(chuàng)建和調(diào)用自定義子程序。2.能夠創(chuàng)建自定義子程序庫。

      【教學(xué)重點】

      能夠創(chuàng)建和調(diào)用自定義子程序。

      【教學(xué)課時】

      1課時

      【教學(xué)過程】

      一、編制與調(diào)用自定義子程序

      為“機器人點歌臺”編輯名為yinfu的子程序。1.啟動VJC,打開程序文件“機器人點歌臺”。

      2.打開“新建子程序”對話框,選定“自定義”選項,在“子程序名稱”框里輸入yinfu。

      3.單擊“確定”按鈕,關(guān)閉對話框。這時流程圖中會顯示“yinfu”模塊,表示將要開始編制自定義子程序。4.在“yinfu”模塊下面添加8個“發(fā)音”模塊,然后依次右擊它們,打開“發(fā)音模塊”對話框,分別選定要演奏的音符1、2、3、4、5、6、7、1。

      5.打開“程序模塊庫”面板,選定“子程序返回”按鈕,在子程序的末尾添加“返回”模塊。

      完成上述操作后,名為yinfu的自定義子程序就編好了。調(diào)用自定義子程序yinfu。

      1.在“機器人點歌臺”的主程序流程圖中選定“do re mi”模塊,再單擊窗口左下角的“刪除”圖標(biāo),刪除它。

      2.選定“程序模塊庫”面板中的“yinfu”的按鈕,再單擊第二個“條件判斷”模塊里“是”分支下的紅點,在流程圖中插入“yinfu”模塊。

      3、保存文件,下載并運行修改后的主程序。

      二、調(diào)用其他主程序的自定義子程序 在“小小歌星”程序里調(diào)用yinfu子程序。1.新建流程圖文件,打開“新建子程序”對話框。

      2.單擊標(biāo)志文件“子程序位置”下面的選擇框,打開這里的下拉列表,再單擊“其它程序?”選項。屏幕上會出現(xiàn)一個“打開flw流程圖”對話框。

      3.選定文件“機器人點歌臺”,單擊“打開”按鈕。

      這時,“新建子程序”對話框的“子程序位置”選擇框里會顯示出選定的文件名,右側(cè)的列表框里會顯示這個文件中保存的所有子文件名。

      4.選中自定義子程序名yinfu,單擊“確定”按鈕。

      5.打開主程序流程圖,可以看到,在“程序模塊庫”面板中增加了名為yinfu的子程序按鈕。

      6.編一個如圖所示的流程圖程序。

      7.以“小小歌星”為文件名保存文件。8.下載并運行這個程序。

      三、建立自定義子程序庫

      建立名為“走圖形”的子程序庫文件。

      1.新建流程圖程序,打開“新建子程序”對話框。

      2.選定對話框里的“自定義”選項,在“子程序名稱”框中輸入“正方形”,在“作者名稱”框中輸入自己的姓名。

      3.單擊“確定”按鈕,流程圖中出現(xiàn)“正方形”模塊后,搭建如圖所示的流程圖,控制機器人沿正方形的邊行走。

      4.仿照上述操作,編制控制機器人按長方形、三角形等圖形行走的自定義子程序。

      5.以“走圖形”為文件名保存文件。

      操作后,這幾個自定義子程序就保存在文件“走圖形”中了。

      四、課堂練習(xí)

      第三篇:linux0.11系統(tǒng)調(diào)用原理及實驗總結(jié)

      Linux0.11系統(tǒng)調(diào)用原理及實驗總結(jié)

      系統(tǒng)調(diào)用的原理

      1.1 概述

      系統(tǒng)調(diào)用是一個軟中斷,中斷號是0x80,它是上層應(yīng)用程序與Linux系統(tǒng)內(nèi)核進行交互通信的唯一接口。通過int 0x80,就可使用內(nèi)核資源。不過,通常應(yīng)用程序都是使用具有標(biāo)準(zhǔn)接口定義的C函數(shù)庫間接的使用內(nèi)核的系統(tǒng)調(diào)用,即應(yīng)用程序調(diào)用C函數(shù)庫中的函數(shù),C函數(shù)庫中再通過int 0x80進行系統(tǒng)調(diào)用。

      所以,系統(tǒng)調(diào)用過程是這樣的:

      應(yīng)用程序調(diào)用libc中的函數(shù)->libc中的函數(shù)引用系統(tǒng)調(diào)用宏->系統(tǒng)調(diào)用宏中使用int 0x80完成系統(tǒng)調(diào)用并返回。

      另外一種訪問內(nèi)核的方式是直接添加一個系統(tǒng)調(diào)用,供自己的應(yīng)用程序使用,這樣就不再使用庫函數(shù)了,變得更為直接,效率也會更高。

      1.2 相關(guān)的數(shù)據(jù)結(jié)構(gòu)

      在說具體的調(diào)用過程之前,這里先要說幾個數(shù)據(jù)結(jié)構(gòu)。

      1.2.1 系統(tǒng)調(diào)用函數(shù)表

      系統(tǒng)調(diào)用函數(shù)表sys_call_table是在sys.h中定義的,它是一個函數(shù)指針數(shù)組,每個元素是一個函數(shù)指針,它的值是各個系統(tǒng)提供的供上層調(diào)用的系統(tǒng)函數(shù)的入口地址。也就是說通過查詢這個表就可以調(diào)用軟中斷0x80所有的系統(tǒng)函數(shù)處理函數(shù)。

      1.2.2 函數(shù)指針偏移宏

      這是一系列宏,它們的定義在unistd.h中,基本形式為#define _NR_name value,name為系統(tǒng)函數(shù)名字,value是一個整數(shù)值,是name所對應(yīng)的系統(tǒng)函數(shù)指針在sys_call_table中的偏移量。

      1.2.3 系統(tǒng)調(diào)用宏

      系統(tǒng)調(diào)用宏_syscalln(type,name)在內(nèi)核的unistd.h文件中定義的,對它展開就是: type name(參數(shù)列表){ 調(diào)用過程; }; 其中,n為參數(shù)個數(shù),type為函數(shù)返回值類型,name為所要調(diào)用的系統(tǒng)函數(shù)的名字。在unistd.h中共定義了4個這樣的宏(n從0到3),也就是說,0.11核中系統(tǒng)調(diào)用最多可帶3個參數(shù)。那么下面就說這個宏干了什么,也就是說上面的那個“調(diào)用過程”是怎么樣的呢?在這個宏中嵌入了匯編代碼,做的工作就是int 0x80,其中將字符串“_NR_”和name連接,組成一個宏并將這個宏的值,也就是被調(diào)用的系統(tǒng)函數(shù)在sys_call_table中偏移量送到eax寄存器中;同時指明系統(tǒng)函數(shù)將來的返回值放到eax中。

      1.3 系統(tǒng)調(diào)用處理過程

      下面我再說一下系統(tǒng)調(diào)用的核心軟中斷int 0x80具體干了什么。這條指令會引起CPU的軟件中斷,cpu會根據(jù)中斷號找到中斷處理程序。這個中斷處理程序是在System_call.s中。在中斷處理程序的工作過程大致是這樣的:

      1.3.1 將寄存器ds,es,fs以及存有參數(shù)的edx,ecx,ebx入棧,再ds,es,指向內(nèi)核段,fs指向用戶段。

      1.3.2 根據(jù)eax中的偏移值,在函數(shù)表sys_call_table中找到對應(yīng)的系統(tǒng)函數(shù)指針(函數(shù)的入口地址)。并利用call指令調(diào)用系統(tǒng)函數(shù),返回后,程序把返回值加入堆棧。

      1.3.3 檢查執(zhí)行本次系統(tǒng)調(diào)用的進程的狀態(tài),如果發(fā)現(xiàn)由于某種原因原進程沒處在就緒狀態(tài)或者時間片到了,就會執(zhí)行進程調(diào)度函數(shù)schedule()。1.3.4 通過執(zhí)行這次調(diào)用的程序的代碼選擇符判斷它是不是普通用戶程序,如果是就調(diào)用信號處理函數(shù)。若不是就直接彈出棧內(nèi)容,并返回 添加一個系統(tǒng)調(diào)用的實驗

      2.1 實驗內(nèi)容

      在linux0.11版本中添加兩個系統(tǒng)調(diào)用,并編寫一個簡單的應(yīng)用程序測試它們。

      第一個系統(tǒng)調(diào)用是iam(),其原型為:

      intiam(const char * name);完成的功能是將字符串參數(shù)name的內(nèi)容拷貝到內(nèi)核中保存下來。要求name的長度不能超過23個字符。返回值是拷貝的字符數(shù)。如果name的字符個數(shù)超過了23,則返回“-1”,并置errno為EINVAL。

      第二個系統(tǒng)調(diào)用是whoami(),其原型為:

      intwhoami(char* name, unsigned int size);它將內(nèi)核中由iam()保存的名字拷貝到name指向的用戶地址空間中,同時確保不會對name越界訪存(name的大小由size說明)。返回值是拷貝的字符數(shù)。如果size小于需要的空間,則返回“-1”,并置errno為EINVAL。

      2.2 代碼添加修改步驟

      2.2.1 在unistd.h中添加系統(tǒng)調(diào)用接口

      #define __NR_whoami 72 #define __NR_iam 73 intwhoami(void);intaim(void);

      2.2.2 在exit.c文件中添加系統(tǒng)調(diào)用處理函數(shù)的實現(xiàn)

      系統(tǒng)調(diào)用的函數(shù)可以在其他.c文件中添加或在新建文件中添加,只要編輯進image都是可以的,這里為了調(diào)試方便就在exit.c文件中添加了。

      #define MAX 23 char N_MAX[26];

      intsys_whoami(char* name, unsigned int size){ if(strlen(N_MAX)>size)return-EINVAL;

      int i;

      for(i=0;N_MAX[i]!='