眾所周知,ARM架構(gòu)下,函數(shù)參數(shù)是通過 r0~r4寄存器傳遞的;但是如果參數(shù)超過四個,就要借助于棧了。
下面以一個例子說明。

main()的匯編如下:

這個時候(執(zhí)行到箭頭指向的位置),棧的狀態(tài)如下:

函數(shù) func的匯編如下:

此時,棧狀態(tài)如下:
ldr r3, [r11, #4]
上面這一句匯編代碼就是從棧上取回保存的第5個參數(shù)的值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
ARM
+關(guān)注
關(guān)注
135文章
9552瀏覽量
391845 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4417瀏覽量
67501 -
堆棧
+關(guān)注
關(guān)注
0文章
183瀏覽量
20524
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
C函數(shù)調(diào)用機制與棧幀原理詳解
當一個C函數(shù)被調(diào)用時,函數(shù)的參數(shù)如何傳遞、堆棧指針如何變化、棧幀是如何被建立以及如何被消除的,一
發(fā)表于 06-08 10:49
?2614次閱讀
linux內(nèi)核系統(tǒng)調(diào)用之參數(shù)傳遞
與普通函數(shù)一樣,系統(tǒng)調(diào)用通常需要一些輸入/輸出參數(shù),這些參數(shù)可能包括實際值(即數(shù)字)、用戶模式進程地址空間中的變量地址,甚至包括指向用戶模式函數(shù)
C函數(shù)與匯編函數(shù)之間參數(shù)及返回值傳遞方法
做了定義,明確了它們在函數(shù)中的職責(zé):圖 8AAPCS關(guān)于ARM寄存器的定義函數(shù)調(diào)用時的規(guī)則如下:1. 父函數(shù)與子
發(fā)表于 09-30 13:34
ARM函數(shù)調(diào)用時參數(shù)傳遞規(guī)則(轉(zhuǎn)載),記錄一下
之前在學(xué)習(xí)如何在C語言中嵌入?yún)R編時有了解到C語言之前的參數(shù)調(diào)用是使用寄存器R0傳遞第一個參數(shù),R1傳遞
發(fā)表于 03-31 10:44
ARM系統(tǒng)在函數(shù)調(diào)用的時候參數(shù)是通過哪種方式傳遞的
中斷與異常有何區(qū)別?ARM系統(tǒng)在函數(shù)調(diào)用的時候參數(shù)是通過哪種方式傳遞的?
發(fā)表于 12-24 06:21
匯編代碼中對C函數(shù)調(diào)用時如何進行參數(shù)的傳遞以及如何從C函數(shù)正確返回呢
行參數(shù)的傳遞以及如何從C函數(shù)正確返回不同于x86的參數(shù)傳遞規(guī)則,ATPCS建議函數(shù)的形參不
發(fā)表于 05-07 10:02
matlab自定義函數(shù)調(diào)用的方法
matlab自定義函數(shù)調(diào)用的方法
命令文件/函數(shù)文件+ 函數(shù)文件 - 多
發(fā)表于 11-29 13:14
?88次下載
java方法參數(shù)傳遞簡析
參數(shù)被傳遞到方法中時,參數(shù)的值就是該對象的引用一個副本。指向同一個對象,對象的內(nèi)容可以在被
發(fā)表于 09-27 17:03
?0次下載
高效的C編程之函數(shù)調(diào)用
指令BL或MOV pc,lr一般只需要6個指令周期(ARM7上)。 在函數(shù)的入口和出口使用多寄存器加載/存儲指令LDM和STM(Thumb指令使用PUSH和POP)提高函數(shù)體的執(zhí)行效率
發(fā)表于 10-17 16:49
?6次下載
C語言函數(shù)調(diào)用的形式及過程
C語言函數(shù)調(diào)用時的數(shù)據(jù)傳遞
在調(diào)用有參函數(shù)時,主調(diào)函數(shù)和被調(diào)
網(wǎng)絡(luò)系統(tǒng)調(diào)用網(wǎng)絡(luò)套接字入口函數(shù)
調(diào)用的應(yīng)用層接口函數(shù),第二個參數(shù)是一個指針,指向具體被調(diào)用函
Arm64程序調(diào)用通用寄存器的使用方法
下面是Arm64程序調(diào)用標準規(guī)定的通用寄存器的使用方法。 參數(shù)寄存器(X0-X7) 函數(shù)參數(shù)數(shù)量
vlookup函數(shù)的四個參數(shù)含義
VLOOKUP函數(shù)是一種用于在Excel中查找和提取數(shù)據(jù)的功能強大的函數(shù)。它的四個參數(shù)含義分別是:查找值、查找范圍、返回列索引和區(qū)域或表標志。 首先,讓我們來詳細了解這
ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法
評論