1 地址空间&RISC与CISC
CISC:复杂指令集计算机
RISC:精简指令集计算机
RISC 与 CISC 的比较
2 ARM内部寄存器





3 ARM汇编概述
RISC精简指令可以大致分为几类:
1.内存读写
2.运算
3.跳转/分支
4.比较
而指令的集合就称之为"指令集"。
ARM公司一开始推出的指令集就是ARM指令集,每条指令占32位,高效,但是太占空间。于是后面又推出Thumb指令集,每条指令占16位,节省空间,但是效率没有ARM指令集高。
立即数
4 ARM汇编模拟器VisUAL
下载地址(需要梯子): https://salmanarif.bitbucket.io/visual/downloads.html
5 内存访问指令
语法

LDR与STR

LDM与STM
reglist:低标号Register对应低地址(原则)
下面以STM为例:(32位以4字节为一个地址,所以地址每次加4)
关于满减栈的知识补充:
6 数据处理指令
掌握以下指令就足够了:
程序状态寄存器的位域
有些指令在执行后会在程序状态寄存器中改变对应位(以CMP为例):
而在程序状态寄存器中对应位改变后,后续指令可以通过在指令后加后缀来判断程序状态寄存器对应位:

以EQ为例,判断Z位是否为1:Z位为1,则执行"MOV R0,#2"指令
当更改R1的值会发生什么呢?
7 跳转指令
跳转 指令 的核心指令是B和BL:
B:Branch,跳转
BL :Branch with Link,跳转前先把返回地址保存在LR寄存器中
以指令B为例,手写一个Delay函数:
接下来以BL为例,看代码能不能执行到"MOV R1,#1"处(跳转Delay函数之后还能不能回来):
BL指令会将返回地址保存在LR寄存器中,当执行MOV PC,LR就会跳转回来了。
除了B指令和BL指令,也可以通过直接给PC赋值的方式跳转: