机器语言
在CPU中,通过控制电路中开关的状态可以让对应的电路工作,执行一些运算,每一个电路对应的一定长度(ARM指令长度为32位)的10101的二进制代码,这个代码就是机器语言
汇编语言
用助记符代替操作码,用地址符(#、:、%、&、@等符号)或标签代替地址码的语言,汇编语言是机器语言的助记符,本质上是一串人类能够看懂的有特定意义的字符串,需要经过汇编器将汇编语言翻译为机器码。
汇编语言的优缺点
优点:可以直接访问硬件,目标代码简短、执行速度快,汇编指令几乎与机器指令一一对应,而高级语言在不同的编译器下翻译成的机器指令有所不同,高级语言中的某一个操作可以由不同的指令组合完成。
缺点:可移植性差,可阅读性差
ARM指令集的特点
1) 指令长度固定,32位的指令全是32位长度的
2) 几乎所有指令都是 有条件执行的
3) 寄存器与内存之间交换数据采用专用的指令集合
ARM汇编基本指令格式
其中,<>内的项是必须的,{}内是可选的,各项的说明如下:
Opcode:指令助记符
Cond:执行条件
S:是否影响CPSR寄存器的值
Rd:目标寄存器
Rn:第一个操作数的寄存器
operand2:第二个操作数
立即数
在ARM的32位指令中,有一些位需要用来存放指令、标志位,留给数据的只有12位。其中,高4位用来存储移位数的一半,低8位用来存储移位的数据。合法立即数是指能够通过移位将有效数据存储在8位中的数据。