在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

編程語言的加載和執行過程

CHANBAEK ? 來源: 數殼智學 ? 作者: 赤靈 ? 2023-10-31 10:13 ? 次閱讀

上一章著重講了指令,我們用匯編C語言等工具編寫的代碼最終也被轉化成機器指令被執行。本章進一步闡述編程語言如何被加載和執行的過程。

6.1.一段程序代碼

我們給出一段類似C語言的代碼,作為本書電路的“hello world”程序,看看電路之間如何配合才能完成執行這個代碼的目標。

試著分析這3行代碼:

1、a=6,a在高級語言中是一個變量,其本質是一個內存地址;a=6的意思是在a地址的內存空間中存入數字6;本章為了講解過程進一步簡化,假設這兩句已經執行完畢。

2、c=a+b,首先把a和b的內存空間中的數字,用加法器加起來,得到一個結果值9,然后把9存儲到c這個地址的內存空間中。

圖片

圖 6-1 本章代碼內存示意圖

指令操作碼指令地址說明
0000 00000000 1100讀取被加數a的值到加法站暫存器
0000 00010000 1010從內存讀取加數,并相加
0000 00100000 1101將相加的結果存儲內存

6.2.程序執行控制

從上一章詳細闡述了指令寄存器從內存中取出代碼指令,然后控制指令的執行。但是他只負責具體執行一條指令,給它什么指令,它就去完成,可見背后還應該有一個“指揮棒”,把需要執行的指令給指令寄存器,等他執行完成后,把下一個指令給它。

需要設計一個程序執行控制模塊,來做這個“指揮棒”,我們來試著分析它如何工作。

如圖 6-1,內存被分成代碼區和數據區兩部分,代碼區從內存的0000 0000位置開始。根據我們的電路設計,指令的格式是8位的操作碼加上8位的操作地址(見圖 5-1),我們的內存被設計成8位的存儲單元,每一個內存地址下可以存放一個8位的數據。所以一個完整指令在內存中被分兩行存儲。

圖片

圖 6-2 計數寄存器對指令寄存器的控制示意圖

圖 6-2所示,指令寄存器通過對其他的寄存器的控制來執行指令,程序運行控制模塊則通過控制指令寄存器的運行,達到控制整個電路運行的效果。首先,電路通電后,“程序運行控制邏輯模塊”中PC寄存器放著內存中存放代碼的首地址(圖 6-1的0000 0000地址),然后反復執行如下步驟:

1.控制指令操作寄存器(IR_OP)把第一個指令的操作碼取出(內存設置可讀,IR_OP設置可寫);

2.PC寄存器地址加1;

3.控制指令地址寄存器(IR_ADDR)把第一個指令的操作地址取出(內存設置可讀,IR_ADDR設置可寫);

4.指令地址寄存器(IR_ADDR)設置為可讀,設定好指令操作過程中的內存地址;

5.指令操作寄存器(IR_OP)設置為可讀,按照指令碼運行相應的指令邏輯;

6.PC寄存器地址加1;

每完成一次6個步驟的循環,則完成內存中的一個指令的執行,并準備進入下一個指令的執行。

6.3.指令執行控制譯碼器設計

為了實現反復執行以上6步,電路設計的大概思路是用一個三進八出的譯碼器,輸出端對應這6個步驟,輸入端循環輸入二進制的0~5。

6.4.PC寄存器內存地址加1電路設計

6.5.小節

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

    關注

    31

    文章

    5394

    瀏覽量

    122272
  • C語言
    +關注

    關注

    180

    文章

    7622

    瀏覽量

    139188
  • 編程語言
    +關注

    關注

    10

    文章

    1952

    瀏覽量

    35478
  • 程序代碼
    +關注

    關注

    4

    文章

    43

    瀏覽量

    15559
收藏 0人收藏

    評論

    相關推薦

    C語言編譯過程

    C語言從源代碼到可執行文件的過程
    的頭像 發表于 02-04 11:58 ?2197次閱讀

    加載機制的過程和策略

    的生命周期為:加載,連接,初始化,使用,卸載。不過這里只重點描述加載,連接,初始化這三個過程。  二、加載過程  基于一張圖看類
    發表于 01-05 17:21

    CPU的代碼語言執行以及編程語言的變化過程是怎樣的

    CPU的基本架構是怎樣組成的?其過程是怎樣的?CPU的代碼語言執行以及編程語言的變化過程是怎樣的
    發表于 11-04 07:13

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

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

    arduino用什么語言編程

    Arduino使用C/C++編寫程序,雖然C++兼容C語言,但這是兩種語言,C語言是一種面向過程編程
    發表于 11-08 15:21 ?7w次閱讀

    加載flash并執行(LFAE)次級bootloader的示例

    這篇應用筆記描述了一個加載flash并執行(LFAE)次級bootloader的示例。這個應用是開發來增強AN2546中給出的加載RAM并執行主bootloader的,其中加入了允許隨
    發表于 11-24 13:53 ?3248次閱讀

    java程序的執行過程詳解

    Java程序運行時,必須經過編譯和運行兩個步驟。首先將后綴名為.java的源文件進行編譯,最終生成后綴名為.class的字節碼文件。然后Java虛擬機將編譯好的字節碼文件加載到內存(這個過程被稱為類加載,是由
    發表于 04-26 11:12 ?1.8w次閱讀
    java程序的<b class='flag-5'>執行</b><b class='flag-5'>過程</b>詳解

    GRAPH編程語言

    GRAPH 是一種創建順序控制系統的圖形編程語言。使用順控程序,可以更為快速便捷和直觀地對順序進行編程。通過將過程分解為多個步,而且每個步都有明確的功能范圍,然后再將這些步并組織到順控
    的頭像 發表于 04-09 15:06 ?1.4w次閱讀
    GRAPH<b class='flag-5'>編程</b><b class='flag-5'>語言</b>

    PLC梯形圖編程方法和編程語言的特點

      梯形圖編程是一個廣泛應用于PLC編程編程語言,它有一個與電子電路圖非常相似的框架,但是它的目標是編寫和執行自動化
    發表于 03-16 18:02 ?3644次閱讀

    plc編程是什么 plc編程語言

    PLC編程是指通過PLC編程軟件,使用PLC編程語言(如Ladder Diagram、Function Block Diagram、Structured Text等)對PLC進行程序設
    發表于 04-14 15:44 ?7571次閱讀

    CAPL編程語言快速入門

    CAPL是由Vector公司開發的類似于C語言的面向過程編程語言,是CANoe和CANalyzer中可用的編程
    的頭像 發表于 09-17 16:11 ?3032次閱讀
    CAPL<b class='flag-5'>編程</b><b class='flag-5'>語言</b>快速入門

    簡單聊聊C語言執行步驟

    我們初學C語言時老師肯定講過C語言執行過程:預處理——編譯——匯編——鏈接。
    發表于 07-31 11:28 ?1528次閱讀
    簡單聊聊C<b class='flag-5'>語言</b>的<b class='flag-5'>執行</b>步驟

    uboot命令的執行過程是什么

    U-boot是通過執行u-boot提供的命令來加載Linux內核的,其中 命令bootm的功能 即為從memory啟動Linux內核映像文件。 在講解bootm加載內核之前,先來看看u-boot中
    的頭像 發表于 12-04 17:31 ?960次閱讀

    淺談PLC程序執行過程

    plc初學者,學習編程,首先要了解PLC程序執行過程是什么。
    的頭像 發表于 01-08 09:31 ?3388次閱讀

    MCU編程語言和開發環境介紹

    MCU編程語言 MCU編程語言是用于編寫MCU程序的高級編程語言,它們使得開發者能夠更高效地開
    的頭像 發表于 11-01 11:51 ?1669次閱讀
    主站蜘蛛池模板: 欧美极品bbbbⅹxxxx | 欧美作爱福利免费观看视频 | 久久久久免费观看 | 免费无毒片在线观看 | 男女免费在线视频 | 亚洲bbb | 中文字幕第13亚洲另类 | 色噜噜狠狠色综合欧洲 | 成人三级影院 | freesexvideo性2| 天天插天天干天天射 | 欧美日韩亚洲国产 | 欧美精品首页 | 天天曰天天操 | 国产高清在线精品一区 | 99国内视频| 狠狠色丁香婷婷 | 狠狠色丁香婷婷久久综合不卡 | 亚洲黄色三级 | 欧美成人精品一区二区 | 四虎影视免费 | 精品久久久久久国产免费了 | 午夜免费福利网站 | 色色色色色色色色色色色色色色 | 天天插插| 在线成人免费 | 91破处视频 | 日本三级s级在线播放 | 国产综合13p| 狠狠色狠狠色 | 伊人久久大 | 黄色hd| 欧美freesex10一13 | 女人双腿搬开让男人桶 | 99久久久免费精品免费 | 国产床戏无遮掩视频播放 | 午夜100| 精品国产柚木在线观看 | 国产在线视频h | 日日日干干干 | 亚洲va欧美va国产综合久久 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品