技术周边swift开发知识收集

汇编窥探Swift底层(一):汇编基础

2020-02-24  本文已影响0人  冰风v落叶

汇编基础

一、程序的本质

1. 程序的执行过程

如下图所示,执行软件的时候,会将软件从硬盘装载到内存中,然后由CPU控制内存读与写,同时也会控制计算机的其他设备进行响应

软件执行过程
2. CPU

如下图所示,CPU包括寄存器、运算器、控制器,寄存器负责信息存储,运算器负责信息处理,控制器负责分析指令并发出相应的控制信号

CPU

二、寄存器和内存

寄存器和内存

三、编程语言的发展

总结

四、常见汇编指令

常见汇编指令

注意: movq和leaq的区别:

注意: jmp和call的区别:

五、寄存器

六、AT&T汇编语言的常用技巧(这些技巧在以后分析汇编的时候会经常用到,建议熟记)

- 1. 0x712a(%rip) 一般都是全局变量,全局区 (这句汇编的意思是:rip寄存器的值 + 0x712a)
- 2. -0x10(%rbp) 一般都是局部变量,栈空间 (这句汇编的意思是:rbp寄存器的值 - 0x10)
- 3. 0x10(%rax)一般是堆空间 (这句汇编的意思是:rax寄存器的值 + 0x10)
- 4. rax、rdx寄存器一般存储函数返回值
- 6. rdi、rsi、rdx、rcx、r8、r9等寄存器常用来存放函数参数
- 7. rsp、rbp常用于存放栈操作
- 8. rip作为指令指针,存储着CPU下一条要执行的指令的地址,一旦CPU读取一条指令,rip会自动指向下一条指令

七、LLDB常用调试命令(加粗标红的命令以后会经常用,建议熟记)

八、内存常用知识

上一篇 下一篇

猜你喜欢

热点阅读