最新 最热

C语言理论题经验分享1

我们在学习C语言的时候可能经常会遇到各种各样***稀奇古怪***(==你不会)的理论题,虽然在实际应用中可能遇不到这些情况,但是掌握这些基础理论知识对加深我们对C语言的理解和学习有很大好处。...

2021-02-22
0

从汇编角度与你分析「为什么不要用异或来交换两个数」

Python 的这种不借助临时变量实现交换实际是巧妙的利用了“操作栈”,属于语言层面上的特性技巧,不在我们的讨论范围。

2021-02-20
0

ARM64下OC的汇编

断点处可以看见,x0 objc_alloc_init调用方法,从x8取出,既看x8和x0寄存器。

2021-02-05
1

ARM64下switch语句

b.eq 0x104016218 ;判断w0是否相等于1,是跳转执行相应命令adrp x0,1 add x0,x0,#0xf7d,否执行下一句

2021-02-03
0

ARM64下的汇编循环

100006250~100006260处分别是拉伸栈空间,分别给零寄存器,w0,x1入栈数据。

2021-02-03
0

ARM64下if语句的状态寄存器变化

cpsr有32位,其中IFTM[0:4]称为控制位,程序无法改变,除非CPU运行在某种特殊的管理模式下。

2021-02-02
0

汇编语言---乘法指令及符号扩展

乘法指令分为无符号数乘法指令和有符号数乘法指令两种,它们唯一的区别是相乘的两个操作数是有符号数据还是无符号数据。乘法指令的被乘数是隐含操作数,乘数需在指令中显式写出来。执行指令时,CPU会根据乘数是8位还是16位...

2021-02-02
0

ARM64下函数参数的传导

1.在上一章 ARM64下用汇编写一个死循环及函数保护栈 中我们写了一个空函数,与以往不同的是这次编译器没有进行简写操作

2021-01-31
0

ARM64下用汇编写一个死循环及函数保护栈

而且ret 会默认使用lr x30寄存器里存放的值。也既是返回到A函数的第四句汇编代码。实现死循环

2021-01-29
0

ARM64下的函数sp指令调用栈操作

由于0xb在内存地址中不明显,我们修改它让它成为一个特征值,修改x0的值我们可以发现内存地址是从地往高处写的

2021-01-29
0