断点处可以看见,x0 objc_alloc_init调用方法,从x8取出,既看x8和x0寄存器。
b.eq 0x104016218 ;判断w0是否相等于1,是跳转执行相应命令adrp x0,1 add x0,x0,#0xf7d,否执行下一句
100006250~100006260处分别是拉伸栈空间,分别给零寄存器,w0,x1入栈数据。
cpsr有32位,其中IFTM[0:4]称为控制位,程序无法改变,除非CPU运行在某种特殊的管理模式下。
乘法指令分为无符号数乘法指令和有符号数乘法指令两种,它们唯一的区别是相乘的两个操作数是有符号数据还是无符号数据。乘法指令的被乘数是隐含操作数,乘数需在指令中显式写出来。执行指令时,CPU会根据乘数是8位还是16位...
1.在上一章 ARM64下用汇编写一个死循环及函数保护栈 中我们写了一个空函数,与以往不同的是这次编译器没有进行简写操作
而且ret 会默认使用lr x30寄存器里存放的值。也既是返回到A函数的第四句汇编代码。实现死循环
由于0xb在内存地址中不明显,我们修改它让它成为一个特征值,修改x0的值我们可以发现内存地址是从地往高处写的