衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

指令如何執行

CHANBAEK ? 來源:數殼智學 ? 作者: 赤靈 ? 2023-10-30 15:58 ? 次閱讀

5.1.指令的本質

雖然把“總線”比喻成“高速公路”,但是兩者之間還是有很大的不同,在現實的高速公路上,汽車向著同一個方向前進,每個汽車有不同的目的地,在不同的路口下高速。但是在電路中,電子的傳輸速度是光速,信號會同時出現在所有的路口,也就是說不可能要求“總線”中的信號去哪個路口,不去哪個路口。

所以我們控制信號的手段是當數據信號在總線中的時候,可以通過控制哪些元件從“總線”中讀取信號或者控制哪些元件往總線中寫入數據的方式來達到控制整個電路運行的目的。

那么具體到電路中,應該如何實現控制信號進出總線呢?從第四章我們知道,存儲器(寄存器、內存)有兩個讀、寫兩個控制開關。讓我們好像找到了的“命門”,只要控制好這些讀、寫開關,當某個寄存器設置為讀,數據從寄存器傳導到總線,當某個寄存器設置為寫,實現把數據從總線讀入寄存器,如此就能控制好整個電路,讓它做我們想做的事情。

為了更加清楚的說明整個控制過程,我們再看看從內存中讀取數據相加的控制過程,具體計算步驟實現如下(表 5-1):

表 5-1 相加電路的實現步驟

步驟序號步驟描述設置
1讀被加數內存(M)的R=1;暫存寄存器(TR1)的W=1;其余開關=0
2讀加數和相加一起內存(M)的R=1;暫存寄存器(TR1)的R=1;暫存寄存器(TR2)的W=1;其余開關=0
3保存結果內存(M)的W=1;暫存寄存器(TR2)的R=1;其余開關=0

表中的每一行就是一個指令,指令是計算機程序發給計算機處理器的命令。每一個指令,我們通過完成幾個寄存器的讀寫設置,完成一個具有一定功能的動作組合。

5.2.指令寄存器

為了保存當前需要運行的指令,設置指令寄存器組,由指令操作碼和地址寄存器兩個8位寄存器組成。指令操作碼寄存器存放的指令的編號,通過指令譯碼器選擇執行的動作;地址寄存器指的是該指令執行過程中需要的內存地址。

圖 5-1 指令格式

表 5-2 電路支持的指令列表

操作碼說明
0000 0000讀取被加數
0000 0001讀取加數,并相加
0000 0010將相加的結果存儲內存
0000 0100在常量寄存器中存入一個常量
0000 0101把常量寄存器的數存到內存中

5.3.指令譯碼器

為了使得控制更加簡單,可以把每一個步驟(指令)設置一個開關,一鍵完成一個步驟。

進一步,可以在錯誤!未找到引用源。基礎上添加譯碼器,實現指令控制的電路。指令譯碼器的實現還是通過邏輯真值表來輔助設計。

每個指令的操作碼對應多個寄存器的設置操作。比如從內存中讀取是指,并且把值放入加法的加數暫存器TR1中的指令,指令操作碼是 0000,需要將內存的R端口和加數暫存起TR1的W端口設置為1;執行加法的指令,指令操作碼是0001,需要同時設置M寄存器的R=1,暫存器TR1的R=1,暫存器TR2的W=1。根據(表 5-1),重新建立操作碼和寄存器設置的真值表如下表:

表 5-3 指令操作碼和設置動作的真值表

指令操作碼A3A2A1A0指令描述內存M加數暫存器TR1和暫存器TR2
WRWRW
0 0 0 0讀被加數11
0 0 0 1讀加數,相加1
0 0 1 0存結果1

邏輯表達式:

圖片

邏輯電路:

圖片

圖 5-2指令譯碼器電路圖

5.4.內存相加電路實現

圖片

圖 5-3 基于內存的加法功能電路

圖片

圖 5-4 簡單內存示意圖

完成本章的內存相加功能,假設如圖 5-4 a、b、c的內存地址,讀取a、b的值,把相加的結果保存到c,完整指令步驟如下:

5.5.小節

本章提出一個如何將內存中的兩個數字相加的功能的問題,繪制以內存和加法器為主體的功能電路,同時,為了電路圖的布局更加的合理,引入“數據總線”、“地址總線”、“控制總線”的概念。

詳細的闡述指令的本質控制電路完成特定功能,解構指令譯碼器的內部解構,并提出增加指令寄存器,最后給出了較為完整的內存數據相加的邏輯電路。

但是本章對于指令寄存器的指令的加載和按順序執行指令的過程沒有闡述,下一章將重點解決這個問題。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121161
  • 內存
    +關注

    關注

    8

    文章

    3055

    瀏覽量

    74328
  • 指令
    +關注

    關注

    1

    文章

    611

    瀏覽量

    35812
  • 譯碼器
    +關注

    關注

    4

    文章

    312

    瀏覽量

    50466
收藏 人收藏

    評論

    相關推薦

    轉:單片機指令執行過程

    單片機執行程序的過程,實際上就是執行我們所編制程序的過程。即逐條指令的過程。計算機每執行一條指令都可分為三個階段進行。即取
    發表于 08-17 12:47

    請問BX,BLX指令執行的時候會發生CPU寄存器入棧嗎?

    BX,BLX指令執行的時候會發生CPU寄存器入棧嗎
    發表于 09-24 23:00

    一條指令執行需要多少個時鐘周期

    在keil中編程時,寫了一行代碼,然后就想知道,執行這句C代碼需要多長時間。時鐘周期在這就不解釋了,頻率的倒數。指令周期,個人理解就是cpu執行一條匯編指令所需要的時間。我們知道cm3
    發表于 08-04 06:42

    到底一條指令執行需要多少個時鐘周期呢

    到底一條指令執行需要多少個時鐘周期呢?怎樣去計算一個指令所需的時鐘周期呢?
    發表于 10-28 09:25

    MOVX指令執行過程

    MOVX指令執行過程MOVX指令是51單片機訪問片外外設的唯一指令,與外部RAM或I/O空間進行數據的讀寫或者ADC和DAC等都需要使用這條指令
    發表于 12-07 09:38

    c語言指令執行過程是怎樣的

    [STM32]STM32F407系列教程之三,c語言知識點鞏固 指令執行過程
    發表于 12-09 06:31

    ARM與X862.ARM中指令執行

    文章目錄零.預備知識1.ARM與X862.ARM中指令執行3.ARM的九種尋址方式立即數尋址寄存器尋址寄存器間接尋址寄存器偏移尋址寄存器基址變址尋址批量寄存器尋址相對尋址堆棧尋址塊拷貝尋址一.移位
    發表于 12-14 06:32

    請問哪里能查到ARM A53各個指令執行所需要的cycle數

    請問哪里能查到ARM A53各個指令執行所需要的cycle數 ?謝謝
    發表于 10-09 15:38

    請問C8051F?MCU的指令執行速度為多少?

    C8051F?MCU的指令執行速度為多少?
    發表于 09-28 07:41

    求助,平常MCU的指令執行速度為多少?

    平常MCU的指令執行速度為多少?
    發表于 11-01 08:23

    淺談51單片機指令執行的過程

    單片機執行程序的過程,實際上就是執行我們所編制程序的過程。即逐條指令的過程。計算機每執行一條指令都可分為三個階段進行。即取
    發表于 04-16 11:20 ?6338次閱讀
    淺談51單片機<b class='flag-5'>指令</b><b class='flag-5'>執行</b>的過程

    淺析單片機指令執行過程

    單片機執行程序的過程,實際上就是執行我們所編制程序的過程。即逐條指令的過程。
    的頭像 發表于 08-07 14:47 ?5689次閱讀

    RAMP的指令執行模式與脈沖輸出指令

    斜坡信號指令RAMP的編程手冊截圖如下圖23-1所示,有4個操作數,僅適用于16位,無脈沖執行型。
    的頭像 發表于 01-17 09:54 ?1.1w次閱讀
    RAMP的<b class='flag-5'>指令</b><b class='flag-5'>執行</b>模式與脈沖輸出<b class='flag-5'>指令</b>

    單片機MOVX指令執行時序深入分析

    MOVX指令執行過程MOVX指令是51單片機訪問片外外設的唯一指令,與外部RAM或I/O空間進行數據的讀寫或者ADC和DAC等都需要使用這條指令
    發表于 11-24 15:36 ?11次下載
    單片機MOVX<b class='flag-5'>指令</b><b class='flag-5'>執行</b>時序深入分析

    [STM32]STM32F407系列教程之三,c語言知識點鞏固 指令執行過程

    [STM32]STM32F407系列教程之三,c語言知識點鞏固 指令執行過程
    發表于 11-26 13:21 ?13次下載
    [STM32]STM32F407系列教程之三,c語言知識點鞏固 <b class='flag-5'>指令</b><b class='flag-5'>執行</b>過程
    博之道百家乐官网的玩法技巧和规则| 六合彩综合资料| 金沙城百家乐官网大赛规则| 实战百家乐的玩法技巧和规则 | 百家乐如何捕捉长龙| 鸿博娱乐城| 姚记百家乐官网的玩法技巧和规则| 真人百家乐官网赌博技巧| 百家乐开户送十元| 棋牌评测| 百家乐官网在线洗码| 正品百家乐玩法| 注册百家乐官网送彩金| 百家乐筹码真伪| 青阳县| 至尊百家乐facebook| 必博365| 百家乐赢钱密籍| 鸿博,| 金矿百家乐的玩法技巧和规则| 百家乐官网平7s88| 大嘴棋牌手机版| 高档百家乐桌子| 百家乐官网获胜秘决百家乐官网获胜秘诀| 鼎丰娱乐城开户| 成都南偏西24度风水| 百家乐官网庄闲局部失衡| 棋牌游戏平台哪个好| 百家乐侧牌器| 24山向吉凶山运| 任我赢百家乐官网自动投注系统 | 百家乐官网开户平台| 葡京赌场| 威尼斯人娱乐城会员注册| 百家乐看不到视频| 百家乐官网信息| 赤壁市| 大发888主页优惠| 百家乐桌面| 百家乐官网破解之法| 棋牌游戏网站|