x86平台,函式呼叫時引數傳遞是使用堆疊來實現的

2021-08-28 07:17:18 字數 458 閱讀 1114

#include

struct person

;int fun(const char *format,...)

int main()

;//    printf("name:%s,age:%d,score:%d,id:%d",per.name,per.age,per.score,per.id);

fun("abcd", 123, per, 'a', 10);

} x86下可以通過最左邊的引數(棧頂),不斷指標的移動來判斷出其他的引數的值(可變引數),因為x86下,引數儲存的位置是連續的。注意是4位元組對齊(最小為4位元組)。

x64下面在x64下函式呼叫的前4個引數總是放在暫存器中傳遞,剩餘的引數則壓入堆疊中。而x86上則是全部壓入堆疊中(除了fastcall方式)。這4個用於存放引數的暫存器分別是:存放整數引數的rcx,rdx,r8,r9;存放浮點數引數的xmm0,xmm1,xmm2,xmm3。

強健x86平台

最近,聯想的企業級業務頗受關注。雖然與收購ibm x86伺服器業務以及摩托羅拉移動這些大動作相比,聯想宣布與賽門鐵克合作也許不夠勁爆,但從完善聯想企業級解決方案的角度來看,聯想與賽門鐵克的戰略合作同樣舉足輕重。聯想it管理服務及企業級服務業務部總經理林林表示,雙方將基於x86硬體,為中國客戶提供端到...

X86平台和ARM平台

x86和arm都是指cpu的核心。桌面電腦,膝上型電腦中使用的intel amd處理器,就是x86處理器。arm是一家英國的處理器設計公司,其設計的處理器採用了arm核心。arm指令集少,電路規模小,功耗低,發熱低,非常適合於嵌入式 可攜式電子產品,如手機 平板,以及工業嵌入式等。32位系統需要x8...

x86 平台kernel config新舊編譯方法

在86平台 config的配置檔案 arch x86 configs x86 64 defconfig 這個配置檔案是原始的kernel配置檔案 如果自己有一套新的config,需要編譯 第一步 將自己的config 拷貝到 arch x86 configs x86 64 defconfig 然後執...