99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(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;本章為了講解過程進一步簡化,假設這兩句已經(jīng)執(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é)

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

    關注

    31

    文章

    5434

    瀏覽量

    124457
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141700
  • 編程語言
    +關注

    關注

    10

    文章

    1956

    瀏覽量

    36643
  • 程序代碼
    +關注

    關注

    4

    文章

    43

    瀏覽量

    15654
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言編譯過程

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

    加載機制的過程和策略

    的生命周期為:加載,連接,初始化,使用,卸載。不過這里只重點描述加載,連接,初始化這三個過程?! 《?b class='flag-5'>加載過程  基于一張圖看類
    發(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 ?7.1w次閱讀

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

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

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

    Java程序運行時,必須經(jīng)過編譯和運行兩個步驟。首先將后綴名為.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 ?4062次閱讀

    plc編程是什么 plc編程語言

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

    CAPL編程語言快速入門

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

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

    我們初學C語言時老師肯定講過C語言執(zhí)行過程:預處理——編譯——匯編——鏈接。
    發(fā)表于 07-31 11:28 ?1769次閱讀
    簡單聊聊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 ?1152次閱讀

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

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

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

    MCU編程語言 MCU編程語言是用于編寫MCU程序的高級編程語言,它們使得開發(fā)者能夠更高效地開
    的頭像 發(fā)表于 11-01 11:51 ?2194次閱讀