每次看到adrp指令和add指令一起出现时,就代表着将会向某个寄存器中存储变量。
内存地址 汇编指令
0x102f571bc adrp x8, 265
0x102f571c0 add x8, x8,#0xa30
在Xcode中调试时,我们可以很轻松的通过控制台打印出x8寄存器中的地址值(register read x8),从而打印出变量。
非Xcode环境中,我们需要计算变量的内存地址,计算方法如下:
1. PC寄存器的低12位清零,得到 0x102f57000 (二进制的1位对应16进制的4位,计算机中的内存地址一般用16进制表示,0x开头表示16进制数,所以后16进制数的后三位清零)
注:PC寄存器中存储的地址是当前要执行的指令地址,低12位清零,代表当前内存页的起始地址
2. 将十进制数265&