ARMv7 寄存器详解大全(13)

  • 8454: e28db004 add fp sp #4 # 设置新的fp地址(这里的fp位置可能和上面描述有所不同 , 但原理一样)

  • 8458: e24dd008 sub sp sp #8 # 开辟局部变量地址空间

  • 845c: e50b0008 str r0 [fp #-8
    # 给局部变量赋值 处置 , 这里fp -8 是argc

  • 8460: e50b100c str r1 [fp #-12
    # 给局部变量赋值 处置 , 这里fp -12 是argv

  • 8464: e30804d4 movw r0 #34004 ; 0x84d4 # 初始化函数的第一个传参 , r0

  • 8468: e3400000 movt r0 #0

  • 846c: ebffff93 bl 82c0 <_init+0x20> # 这里利用0x82c0 间接跳转到main_test函数

  • 8470: e3a03000 mov r3 #0

  • 8474: e1a00003 mov r0 r3 # 将返回值 赋值给r0相当于return 0;

  • 8478: e24bd004 sub sp fp #4 # 还原栈

    推荐阅读