日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

1.2.4 计算机的工作过程(从源程序到可执行文件、指令执行过程的描述)

發(fā)布時(shí)間:2024/10/14 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.2.4 计算机的工作过程(从源程序到可执行文件、指令执行过程的描述) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1.計(jì)算機(jī)工作過(guò)程分為三步驟
    • 2.從源程序到可執(zhí)行文件
      • (1)預(yù)處理階段
      • (2)編譯階段
      • (3)匯編階段
      • (4)鏈接階段
    • 3.指令執(zhí)行過(guò)程的描述
      • 舉個(gè)例子
      • (1)取指令:PC->MAR->M->MDR->IR
      • (2)分析指令:OP(IR)->CU
      • (3)執(zhí)行指令:Ad(IR)->MAR->M->MDR->ACC


1.計(jì)算機(jī)工作過(guò)程分為三步驟

2.從源程序到可執(zhí)行文件

  • 這里以UNIX系統(tǒng)中的GCC編譯器程序?yàn)槔?#xff0c;將C語(yǔ)言源程序轉(zhuǎn)換為可執(zhí)行文件(以二進(jìn)制磁盤(pán)文件形式存儲(chǔ))

(1)預(yù)處理階段

  • 預(yù)處理器(cpp)對(duì)源程序中以#開(kāi)頭的命令進(jìn)行處理,例如將#include命令后面的.h文件內(nèi)容插入程序文件。輸出結(jié)果是一個(gè)以.i為擴(kuò)展名的源文件hello.i。

(2)編譯階段

  • 編譯器(ccl)對(duì)預(yù)處理后的源程序進(jìn)行編譯,生成一個(gè)匯編語(yǔ)言程序hello.s。匯編語(yǔ)言源程序中的每一條語(yǔ)句都以一種文本格式描述了一條低級(jí)指令。

(3)匯編階段

  • 匯編器(as)將hello.s 翻譯成機(jī)器語(yǔ)言指令,把這些指令打包成一個(gè)稱為可重定位目標(biāo)文件的hello.o,一種二進(jìn)制文件,用文本編輯器打開(kāi)會(huì)亂碼。

(4)鏈接階段

  • 鏈接器(ld)將多個(gè)可重定位目標(biāo)文件和標(biāo)準(zhǔn)庫(kù)函數(shù)合并為一個(gè)可執(zhí)行目標(biāo)文件, 或簡(jiǎn)稱可執(zhí)行文件。本圖例子中,鏈接器將hello.o和庫(kù)函數(shù)printf所在的可重定位目標(biāo)模塊printf.o合并,生成可執(zhí)行文件hello。最終生成的可執(zhí)行文件被保存在磁盤(pán)上。

3.指令執(zhí)行過(guò)程的描述

  • 簡(jiǎn)單描述:程序中第一條指令位于PC中,根據(jù)PC取出第一條指令,經(jīng)過(guò)譯碼,執(zhí)行步驟等,控制計(jì)算機(jī)各功能部件的協(xié)同運(yùn)行,完成這條指令的功能,并計(jì)算下一條指令的地址。用新得到的指令地址繼續(xù)讀出第二條指令并執(zhí)行,知道程序結(jié)束為止。

  • 圖中從控制器送出的虛線是控制信號(hào)↓↓↓↓↓↓
  • 可以控制如何修改PC以得到下一條指令的地址
  • 可以控制ALU執(zhí)行什么運(yùn)算
  • 可以控制主存進(jìn)行讀/寫(xiě)操作

舉個(gè)例子

????????例題:以取數(shù)指令(即將指令地址碼指示的存儲(chǔ)單元中的操作數(shù)取出后送至運(yùn)算器的累加器(ACC)中)為例進(jìn)行說(shuō)明。其信息流程如下:

累加器ACC:二進(jìn)制8位寄存器,存放操作數(shù)或運(yùn)算結(jié)果。
M : 主存儲(chǔ)器

(1)取指令:PC->MAR->M->MDR->IR

????????根據(jù)PC取指令到IR。將PC的內(nèi)容送MAR,MAR中的內(nèi)容直接送地址線,同時(shí)控制器將讀/寫(xiě)信號(hào)送讀/寫(xiě)信號(hào)線,主存根據(jù)地址線上的地址和讀信號(hào),從指定存儲(chǔ)單元讀出指令,送到數(shù)據(jù)線上,MDR從數(shù)據(jù)線接受指令信息,并傳送到IR中。

(2)分析指令:OP(IR)->CU

????????指令譯碼器解釋操作碼OP(IR)并送出控制信號(hào)。指令寄存器(IR)將操作碼OP(IR)送至指令譯碼器(ID)進(jìn)行解釋翻譯,將翻譯的信息送至操作控制器(OC),OC生成相應(yīng)的控制信號(hào),送到不同的執(zhí)行部件。

(3)執(zhí)行指令:Ad(IR)->MAR->M->MDR->ACC

????????取數(shù)操作。將IR中的指令地址碼送MAR,MAR將內(nèi)容送至地址線,同時(shí)控制器將讀/寫(xiě)信號(hào)送讀/寫(xiě)線,從主存指定單元讀出操作數(shù),并通過(guò)數(shù)據(jù)線送至MDR,再傳送到ACC中。

  • 每取完一條指令,(PC)+1->PC,取下一條指令的地址。

總結(jié)

以上是生活随笔為你收集整理的1.2.4 计算机的工作过程(从源程序到可执行文件、指令执行过程的描述)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。