• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機執行指令的過程

    51單片機執行指令的過程

    作者: 時間:2013-05-18 來源:網絡 收藏

    的過程
    單片機執行程序的過程,實際上就是執行我們所編制程序的過程。即逐條指令的過程。計算機每執行一條指令都可分為三個階段進行。即取指令-----分析指令-----
    取指令的任務是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。
    分析指令階段的任務是:將指令寄存器中的指令操作碼取出后進行譯碼,分析其指令性質。如指令要求操作數,則尋找操作數地址。
    計算機執行程序的過程實際上就是逐條指令地重復上述操作過程,直至遇到停機指令可循環等待指令。
    一般計算機進行工作時,首先要通過外部設備把程序和數據通過輸入接口電路和數據總線送入到存儲器,然后逐條取出執行。但單片機中的程序一般事先我們都已通過寫入器固化在片內或片外程序存儲器中。因而一開機即可
    下面我們將舉個實例來說明指令的執行過程:
    開機時,程序計算器PC變為0000H。然后單片機在時序電路作用下自動進入執行程序過程。執行過程實際上就是取出指令(取
    出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環過程。
    例如執行指令:MOV A,#0E0H,其機器碼為“74H E0H”,該指令的功能是把操作數E0H送入累加器,
    0000H單元中已存放74H,0001H單元中已存放E0H。當單片機開始運行時,首先是進入取指階段,其次序是:
    1 程序計數器的內容(這時是0000H)送到地址寄存器;
    2 程序計數器的內容自動加1(變為0001H);
    3 地址寄存器的內容(0000H)通過內部地址總線送到存儲器,以存儲器中地址譯碼電跟,使地址為0000H的單元被選中;
    4 CPU使讀有效;
    5 在讀命令控制下被選中存儲器單元的內容(此時應為74H)送到內部數據總線上,因為是取指階段,所以該內容通過數據總線被送到指令寄存器。
    至此,取指階段完成,進入譯碼分析和執行指令階段。
    由于本次進入指令寄存器中的內容是74H(操作碼),以譯碼器譯碼后單片機就會知道該指令是要將一個數送到A累加器,而該數是在這個代碼的下一個存儲單元。所以,執行該指令還必須把數據(E0H)從存儲器中取出送到CPU,即還要在存儲器中取第二個字節。其過程與取指階段很相似,只是此時PC已為0001H。指令譯碼器結合時序部件,產生74H操作碼的微操作系列,使數字E0H從0001H單元取出。因為指令是要求把取得的數送到A累加器,所以取出的數字經內部數據總線進入A累加器,而不是進入指令寄存器。至此,一條指令的執行完畢。單片機中PC=0002H,PC在CPU每次向存儲器取指或取數時自動加1,單片機又進入下一取指階段。這一過程一直重復下去,直至收到暫停指令或循環等待指令暫停。CPU就是這樣一條一條地執行指令,完成所有規定的功能



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 喀喇沁旗| 南乐县| 秦安县| 余江县| 北票市| 台湾省| 文安县| 泰安市| 开江县| 余庆县| 儋州市| 临武县| 丰城市| 文成县| 汕尾市| 浦东新区| 海伦市| 玛曲县| 沅江市| 壶关县| 灵山县| 邮箱| 永和县| 自贡市| 弥勒县| 利津县| 富平县| 柳江县| 普格县| 汨罗市| 土默特右旗| 利津县| 温泉县| 上犹县| 康乐县| 松江区| 凤翔县| 平顺县| 新田县| 利津县| 宝应县|