###机器语言
计算机语言大致分三类:计算机语言、汇编语言、高级语言。
- 计算机语言:由0和1组成的机器指令
- 汇编语言:使用符号代替机器语言,也称为符号语言
- 高级语言:更加接近人类自然语言,如c/c++/Java/OC/Swift
三者的编译关系
- 高级语言通过编译器得到汇编语言/机器语言
- 同一种高级语言用不同的编译器可能得到不同的汇编语言,不同的高级语言也有可能得到相同的汇编语言,所以汇编语言很难反编译成高级语言
- 汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编指令
- 由于汇编语言与机器语言一一对应的关系,机器语言可以反汇编成汇编语言
汇编语言的特点
- 可以直接操作硬件设备,如储存器,CPU
- 目标代码简短,占用内存少,执行速度快
- 汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的机器指令集\汇编指令集,所以汇编语言不具备可移植性
汇编语言的使用
- 工具开发:可以实现AOT/JIT编译、native调试器、内存/性能剖析工具等。
- 性能优化:有些特定场景,需要通过汇编调用CPU的专用硬件指令进行优化
- 分析问题:单步跟踪某些问题的时候,需要能够看懂一些汇编语句来分析程序真正执行的流程
汇编语言的种类
-
目前讨论比较多的汇编语言有
- 8086 汇编
- Win32汇编
- Win64汇编
- ARM汇编
iPhone用到的汇编是ARM汇编
架构 | 设备 |
---|---|
armv6 | iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch |
armv7 | iPhone3GS, iPhone4, iPhone4S,iPad, iPad2, iPad3(The New iPad), iPad mini, iPod Touch 3G, iPod Touch4 |
armv7s | iPhone5, iPhone5C, iPad4(iPad with Retina Display) |
arm64 | iPhone6s , iphone6s plus,iPhone6, iPhone6 plus,iPhone5S ,iPad Air, iPad mini2 |
字和字节
* 字:一个字由两个字节组成,分为高字节和低字节
* 字节:byte,一个字节由8bit组成