ARM反汇编
文章平均质量分 91
ARM反汇编
晶通物控
草根技术创业多年,在嵌入式方面浸淫多年。希望能分享一点经验给大家,难免有误,请各路高手多多指正,共同提高
展开
-
ARM汇编-5 OC反汇编
OC代码的精髓其实就是。而OC的反汇编其实就是查看其中的方法调用。objc_msgSend有两个参数,第一个是id类型,第二个是SEL类型。id、SEL其实都是一个结构体,内部有isa指针,所以这两个在内存中占有8个字节。转载 2023-05-07 17:54:10 · 577 阅读 · 0 评论 -
ARM汇编-4 指针
不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。这里定义一个int类型的指针a,然后赋值位100,我们知道指针的size是8个字节,a++之后打印多少?是的,没有看错,这里是因为指针的自增和自减操作,与执行的数据类型的宽度有关。// x8的地址放在了sp+0x8的位置,打印一下内存,就是x8存储的地址。// 4. 把x8存储的地址放在sp + 0x8的位置上。按照我们正常的理解,上述代码的意思就是把b的地址给到a,这个时候。所以结果就是108。转载 2023-05-07 17:47:40 · 376 阅读 · 0 评论 -
ARM汇编-3 状态寄存器 if、loop、switch
NZ:是否为0,判断正负CV:无符号,有符号判断是否溢出假设switch语句的分支比较少的时候(例如3,少于4的时候没有意义)没有必要使用此结构,相当于if。各个case分支常量的差值较大的时候,编译器会在效率还是内存进行取舍,这个时候编译器还是会编译成类似于if,else的结构。在分支比较多的时候:在编译的时候会生成一个表(跳转表每个地址四个字节)转载 2023-05-07 17:47:29 · 2942 阅读 · 0 评论 -
ARM汇编-1 初识汇编
汇编基础知识,发展、用途、特点几个知识点:bit,Byte,总线,数据宽度CPU 寄存器。浮点寄存器(64位: D0 - D31 32位: S0 - S31);向量寄存器(128位:V0-V31);通用寄存器(32位w0-w28,64位x0-x28),PC寄存器。bl指令ARM汇编-1 初识汇编 | 不会飞的小白1. 初识汇编 汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。转载 2023-05-07 17:34:26 · 414 阅读 · 0 评论 -
ARM汇编-2 函数
栈:引出SP、FP寄存器。SP:保存栈顶地址,FP:保存栈底的地址。(栈顶的地址比栈底的地址小,所以获取栈顶的值都是通过sub sp, sp #0x10,是减去一个空间,在存值的时候一般都是[sp+#0x08])stp/str 存值(16个字节/8个字节)ldp/ldr 取值(16个字节/8个字节)stur/ldur 本质上与str/ldr没有区别,带【u】的操作的是一个负值。bl指令:通过lr(x30)寄存器,保存回家的路,bl跳转到对应的方法。转载 2023-05-07 17:39:49 · 1422 阅读 · 0 评论