iOS汇编系列-汇编入门
2018-05-05 14:09 iCoderHong 阅读(852) 评论(0) 编辑 收藏 举报概述
汇编语言(Assembly Language)用符号代替了0和1,比机器语言更便于阅读和记忆。
但是同样汇编语言同样指令太多不便于记忆,就出现了高级语言。C\C++\Java\Swift等,更接近人类的自然语言。
编程语言的发展史
机器语言是可以直接运行在计算识别运行的,汇编需要经过编译生成计算机语言。高级语言是通过编译中间产物是汇编,不是一部到机器语言。
汇编语言与机器语言是一一对应的,每一条机器语言指令都有与之对应的汇编指令。汇编语言可以通过编译得到机器语言,机器语言可以通过反编译得到汇编语言。
汇编语言特点
- 可以直接可以直接访问、控制各种硬件设备,比如存储器,CPU等,能最大限度的发挥硬件功能。
- 汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的机器指令集\汇编指令。所以汇编指令不具备可移植性。
- 不区分大小写。比如mov与MOV是一样的。
汇编语言的用途
- 编写驱动程序、操作系统(比如Linux内核的某些关键部分)
- 对性能要求极高的程序或者代码片段,可与高级语言混合使用(内联编译)
- 软件安全
- 病毒分析与防治
- 逆向\加壳\脱壳\破解外挂\免杀\加密\解密\漏洞\黑客
- 是理解整个计算机系统的最佳七点和最有效途径
- 更好了解代码的本质
汇编语言分类
- 8086汇编(8086处理器是16bit的CPU)
- Win32汇编
- Win64汇编
- AT&T汇编(Mac、iOS模拟器)
- ARM汇编(嵌入式、iOS设备)