彙編向函式傳引數

2021-05-22 12:27:15 字數 408 閱讀 4992

今天師兄講了下彙編如何向函式傳引數,為了怕以後忘記,先記在這裡。

在老核心裡面,彙編往函式傳遞引數是第乙個引數是棧頂,依次往後。但是得在函式定義的時候用asmlinkage 字首,是函式強制從彙編裡面取引數。現在新核心是彙編的第乙個引數是eax,第二個引數是edx。

以下**是在師兄的程式裡面看到的,

struct test;

int print(int a , struct test *ll)

static int __init hello_init(void)

該程式 執行結果列印順序應該是:56 34 12,print第二個引數是指標,  movl %%esp, %%edx 是把棧頂指標付給eax,所以eax就指向了34,然後指標往上移動,列印了12,因為棧位址是從高到低的,所以棧頂指標加就可以理解了。

向Process傳引數

摘要 有的時候,我們需要在乙個程序啟動另外乙個程序,並傳遞一些引數過去。正文 我們很容易會想到下面的 processstartinfo startinfo new processstartinfo startinfo.filename d test.exe startinfo.arguments s...

向shell指令碼傳引數

執行 nano test.sh 建立乙個新的shell指令碼。指令碼test.sh的內容如下 bin sh name 1 echo the are great man 給新建立的test.sh的指令碼賦可執行許可權,命令為 chmod 755 test.sh 執行 test.sh xiao wang...

Linux之向指令碼傳引數

linux之向指令碼傳引數 之前我們向指令碼傳遞引數可以通過 1,2等特殊變數。很方便,但是有些限制,就是不能超過9個引數。通過使用shift和getopts命令,我們可以十分方便的向指令碼傳遞引數。一 shift 通過使用shift,我們將引數選項從左向右移。看下面這個例子 bin sh shif...