1. 机器语言—由0和1组成的机器指令.也就是我们说的电信号。如:0101 0001 1101 0110
2.汇编语言(assembly language)—使用符号代替机器语言。便于记忆。如:mov ax,bx
而我们平常所用的C\C++\Java\OC\Swift,则是高级语言。
汇编语言与机器语言一一对应,每一条机器指令都汇编语言可以通过编译得到机器语言
汇编语言可以直接访问、控制各种硬件设备,能够不受编译器的限制,对生成的二进制代码进行完全的控制
汇编指令机器指令一一对应。不同CPU可能生成不同机器指令集\汇编指令集,所以汇编语言不具备可移植性
汇编语言的种类
8086汇编(8086处理器是16bit的CPU)
Win32汇编
Win64汇编
ARM汇编(嵌入式、Mac、iOS)
......
我们iPhone里面用到的是ARM汇编,但是不同的设备也有差异.因CPU的架构不同.
架构 设备
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
要想学好汇编,首先需要了解CPU(中央处理器)等硬件结构
硬件相关最为重要是CPU/内存
在汇编中,大部分指令都是和CPU与内存相关的
cpu主要包括运算器和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
CPU通过总线跟外部器件进行交互
总线分类 1》地址总线:它的宽度决定了CPU的寻址能力
2》数据总线:它的宽度决定了CPU的单次数据传送速度
3》控制总线:它的宽度决定了CPU对其他器件的控制能力、能有多少种控制
几种汇编类型的汇总
熟记以下几个2的次方和换算倍率可以提高计算能力
做个小练习
1.一个CPU 的寻址能力为8KB,那么它的地址总线的宽度为
1KB = 2^10 8KB= 1KB*8= 2^10*2^3
所有一个CPU 的寻址能力为8KB,那么它的地址总线的宽度为10+3=13
2.从内存中读取1024字节的数据,8086数据总线宽度16根至少要读____次,80386数据总线宽度32根至少要读取____次.
8086: 每次读16/8=2字节,1024字节至少要读1024/2 = 512次
80386 :每次读32/8=4字节,1024字节至少要读1024/4 = 256次