程式語言,可執行檔案,cpu執行指令流程的一些理解

2021-05-10 13:23:49 字數 441 閱讀 3651

從cpu的角度來看,機器工作的過程就是通過乙個不斷的載入並執行指令過程。指令由指令碼和運算元據組成,根據指令和資料不同組合為不同長度和內容的二進位制位元組串。

在c語言中,有不同資料型別(char, short, int, float, double等)的變數,變數之間可以執行加減乘除等不同的操作,程式流除了順序執行之外還可以有條件選擇和迴圈執行;程式還可以定義函式,將相關邏輯分類然後重複呼叫;除了自己寫的**之外還可以呼叫系統的函式庫,使用許多系統提供的功能強大多樣的函式;還有……

那麼, c語言編寫的**最終是如何轉換為一系列連續的底層指令供cpu載入呼叫的呢?

源** --編譯器--> 可執行檔案(elf/pe) --載入器--> 程式載入到記憶體並傳遞到cpu執行

以下以linux平台下gcc編譯c語言為例講解,其它平台和編譯型語言可能細節不同,但大體原理基本相同。

寫作中,待續。。。

linux 執行可執行檔案

1 首先,需要了解一下a.out這個目標檔案。a.out在linux下是elf executable linkable format 檔案格式,該目標檔案由乙個檔案頭 段 資料段 已初始化 從定位資訊區 符號表及符號名字字串構成,如下左圖所示,經過鏈結後生成執行檔案如下右圖所示,需要說明的是1 bs...

go語言生成可執行檔案

由於依賴了github.com裡的beego,所以要加github.com的上級目錄到gopath。1.開啟cmd命令視窗,用命令設定要編譯包以及依賴包所在路徑的環境變數,即gopath 該設定只對該視窗生效 set gopath e programmerroute go development 2...

API函式執行可執行檔案

shellexecute hwnd hwnd,父視窗控制代碼 lpcstr lpoperation,操作型別 lpcstr lpfile,要進行操作的檔案或路徑 lpcstr lpparameters,當lpoperation為 explore 時指定要傳遞的引數,通常設為null lpcstr l...