我想在低級別上理解如何將輸入賦予給函數。一個函數運行後究竟發生了什麼?例如,考慮以下因素:功能的輸入分配的低級描述
int foo(int t1, int t2)
{
Function defintion goes here
}
然後在後面的代碼
main()
{
.
.
int a= foo(23, 24);
.
.
}
假設代碼編譯成功,我們得到一個二進制文件,即相當於我們的高層次源的.exe文件碼。我想了解內部輸入給函數的級別以及在雙擊這個.exe文件時究竟發生了什麼。點擊.exe後,什麼軟件/硬件進入遊戲?如果有人能給我一個簡短的描述,我將不勝感激。
按照要求
操作系統:Windows CPU:英特爾酷睿2
至於函數調用去,一是文字23
和
24
裝載到CPU中特定的寄存器(使用
你問的太遠了,太多了,無法在這裏回答。如果這是在Windows上,請閱讀關於PE文件和Windows加載程序和x86函數調用。如果這是Linux,請閱讀有關Elf文件和Linux加載程序。 – 2013-03-12 14:23:18
@gpuguy如果你可以命名一個確切的操作系統,並且使用了哪個編譯器,那麼這個問題會很好。否則,這個問題可能過於廣泛,任何人都無法給出有意義的答案。 – Lundin 2013-03-12 14:26:30
我同意Jonathon。你也想看看叫做「調用棧」的東西。 – Panzercrisis 2013-03-12 14:26:39