美文网首页
arm64汇编篇-015指针的反汇编

arm64汇编篇-015指针的反汇编

作者: ClementGu | 来源:发表于2018-06-05 16:33 被阅读33次

    指针的反汇编

    1.输入如下代码:

    void func (){
      int * a;
      int b = 10;
      a = &b;
    }
    

    2.真机运行断点调试如图:

    指针的反汇编
    3.解析:

    1.将栈空间四个字节内存给x8寄存器
    2.将10赋值给w9寄存器
    3.将w9寄存器的值存储到x8寄存器指向的内存空间
    4.将x8的值存储在sp偏移8个单位空间,即栈空间。(局部变量是保存在栈中的寄存器不保存数据

    • 数组指针
      1.代码如下:
    void func()
    {
      int arr[5] = {1,2,3,4,5};
      for  (int i = 0;i<5;i++)
      {
        printf("%d\n",*(arr + i));
      }
    }
    

    2.解析:
    arr为指向数组内存首地址的指针。
    (arr + i)为取对应index的数据的地址,想要取到对应位置的数据在前面加* 即*(arr + 1)

    3.运行结果:

    1
    2
    3
    4
    5

    4.arr不可以arr++ 但是可以int *a = arr 强转,然后a++来代替。

    相关文章

      网友评论

          本文标题:arm64汇编篇-015指针的反汇编

          本文链接:https://www.haomeiwen.com/subject/thcusftx.html