91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-22 14:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

下面以一個例子說明。

ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法

main()的匯編如下:

ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法

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

ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法

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

ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法

此時,棧狀態(tài)如下:

ldr r3, [r11, #4]

上面這一句匯編代碼就是從棧上取回保存的第5個參數(shù)的值。

ARM架構(gòu):函數(shù)調(diào)用參數(shù)超過四個的傳遞方法

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9552

    瀏覽量

    391845
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67501
  • 堆棧
    +關(guān)注

    關(guān)注

    0

    文章

    183

    瀏覽量

    20524
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    C函數(shù)調(diào)用機制與棧幀原理詳解

    當一C函數(shù)調(diào)用時,函數(shù)參數(shù)如何傳遞、堆棧指針如何變化、棧幀是如何被建立以及如何被消除的,一
    發(fā)表于 06-08 10:49 ?2614次閱讀
    C<b class='flag-5'>函數(shù)</b><b class='flag-5'>調(diào)用</b>機制與棧幀原理詳解

    linux內(nèi)核系統(tǒng)調(diào)用參數(shù)傳遞

    與普通函數(shù)一樣,系統(tǒng)調(diào)用通常需要一些輸入/輸出參數(shù),這些參數(shù)可能包括實際值(即數(shù)字)、用戶模式進程地址空間中的變量地址,甚至包括指向用戶模式函數(shù)
    的頭像 發(fā)表于 12-20 09:32 ?2842次閱讀

    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

    ARM函數(shù)調(diào)用過程說明

    ARM函數(shù)調(diào)用默認4參數(shù)用R0-R4傳遞,大于4
    發(fā)表于 04-26 10:05

    匯編代碼中對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次下載
    java<b class='flag-5'>方法</b><b class='flag-5'>參數(shù)</b><b class='flag-5'>傳遞</b>簡析

    高效的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編程之<b class='flag-5'>函數(shù)</b><b class='flag-5'>調(diào)用</b>

    函數(shù)參數(shù)傳遞的原理

    參數(shù)傳遞,是在程序運行過程中,實際參數(shù)就會將參數(shù)傳遞給相應(yīng)的形式參數(shù),然后在
    的頭像 發(fā)表于 03-02 11:41 ?8032次閱讀
    <b class='flag-5'>函數(shù)</b><b class='flag-5'>參數(shù)</b><b class='flag-5'>傳遞</b>的原理

    C語言函數(shù)調(diào)用的形式及過程

    C語言函數(shù)調(diào)用時的數(shù)據(jù)傳遞調(diào)用有參函數(shù)時,主調(diào)函數(shù)和被調(diào)
    的頭像 發(fā)表于 03-10 14:28 ?2723次閱讀

    網(wǎng)絡(luò)系統(tǒng)調(diào)用網(wǎng)絡(luò)套接字入口函數(shù)

    調(diào)用的應(yīng)用層接口函數(shù),第二參數(shù)是一指針,指向具體被調(diào)用
    的頭像 發(fā)表于 07-24 11:02 ?1092次閱讀

    Arm64程序調(diào)用通用寄存器的使用方法

    下面是Arm64程序調(diào)用標準規(guī)定的通用寄存器的使用方法。 參數(shù)寄存器(X0-X7) 函數(shù)參數(shù)數(shù)量
    的頭像 發(fā)表于 07-28 11:28 ?4001次閱讀
    <b class='flag-5'>Arm</b>64程序<b class='flag-5'>調(diào)用</b>通用寄存器的使用<b class='flag-5'>方法</b>

    vlookup函數(shù)四個參數(shù)含義

    VLOOKUP函數(shù)是一種用于在Excel中查找和提取數(shù)據(jù)的功能強大的函數(shù)。它的四個參數(shù)含義分別是:查找值、查找范圍、返回列索引和區(qū)域或表標志。 首先,讓我們來詳細了解這
    的頭像 發(fā)表于 12-01 09:57 ?9712次閱讀