色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

編程語言的加載和執(zhí)行過程

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

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

6.1.一段程序代碼

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

試著分析這3行代碼:

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

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

圖片

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

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

6.2.程序執(zhí)行控制

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

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

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

圖片

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

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

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

2.PC寄存器地址加1;

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

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

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

6.PC寄存器地址加1;

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

6.3.指令執(zhí)行控制譯碼器設計

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

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

6.5.小節(jié)

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

    關注

    31

    文章

    5425

    瀏覽量

    123641
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140679
  • 編程語言
    +關注

    關注

    10

    文章

    1955

    瀏覽量

    36246
  • 程序代碼
    +關注

    關注

    4

    文章

    43

    瀏覽量

    15636
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    C語言編譯過程

    C語言從源代碼到可執(zhí)行文件的過程。
    的頭像 發(fā)表于 02-04 11:58 ?2321次閱讀

    加載機制的過程和策略

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

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

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

    c語言指令執(zhí)行過程是怎樣的

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

    arduino用什么語言編程

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

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

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

    java程序的執(zhí)行過程詳解

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

    GRAPH編程語言

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

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

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

    plc編程是什么 plc編程語言

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

    CAPL編程語言快速入門

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

    簡單聊聊C語言執(zhí)行步驟

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

    uboot命令的執(zhí)行過程是什么

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

    淺談PLC程序執(zhí)行過程

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

    MCU編程語言和開發(fā)環(huán)境介紹

    MCU編程語言 MCU編程語言是用于編寫MCU程序的高級編程語言,它們使得開發(fā)者能夠更高效地開
    的頭像 發(fā)表于 11-01 11:51 ?2074次閱讀
    主站蜘蛛池模板: 国产乱码二卡3卡四卡 | 国产无遮挡无码视频在线观看不卡 | WWW国产精品内射老师 | 一起碰一起噜一起草视频 | 99久久精品费精品国产 | 久久青青热 | 精品性影院一区二区三区内射 | 视频一区二区三区蜜桃麻豆 | 国产在线观看成人 | 日韩特黄特色大片免费视频 | 天天夜夜草草久久亚洲香蕉 | JAPANRCEP老熟妇乱子伦视频 | 97在线观看免费视频 | 9277在线观看免费高清完整版 | 亚洲不卡一卡2卡三卡4卡5卡 | 四虎影院网红美女 | 日夜啪啪一区二区三区 | 肉肉高潮液体高干文H | 黄色888| 强壮的公次次弄得我高潮韩国电影 | 中文字幕人成人乱码亚洲影视S | 老阿姨才是最有味的一区二区 | 久久精品午夜一区二区福利 | 国产日韩亚洲精品视频 | 蜜芽在线播放免费人成日韩视频 | 亚洲国产成人在线 | 四虎影视库永久免费 | 国产精品99AV在线观看 | 强开乳罩摸双乳吃奶视频 | 亚州AV中文无码乱人伦在线 | 亚洲精品嫩草研究院久久 | 亚洲 综合 欧美在线 热 | 牛牛在线视频 | 秋霞在线观看视频一区二区三区 | 国语对白老女人8av 国语对白刺激真实精品 | 午夜福利免费院 | 黄页网站免费视频大全9 | 国产精品点击进入在线影院高清 | 国内外成人免费在线视频 | 亚洲人成www在线播放 | 伊人久久影院大香线蕉 |

    電子發(fā)燒友

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

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