目录
一、ARM汇编
1、ARM汇编概述
(1)汇编指令集的分类:(常用的,记住这些就够了)
通过上一篇文章的示例,可以知道① ②
(2)指令集的分类
① 怎么修改CPU使用的指令集?
一个芯片既可以用ARM指令集,也可以用Thumb指令集,根据CPU内部的程序状态寄存器里的某一位,来表示运行的指令是ARM还是Thumb指令集,如下图:
ARM公司发布两类指令集:
要节省空间时用Thumb指令,要效率时用ARM指令。
1) ARM指令集,这是32位的,每条指令占据32位,高效,但是太占空间
2) Thumb指令集,这是16位的,每条指令占据16位,节省空间
② Thumb-2指令
当我们同时使用ARM指令集和Thumb指令集时,该怎么办呢?
1)对于以前的ARM7、ARM9和现在的Cortex A7芯片,都是支持这两种指令集。
2)对于现在的Corte-M系列,比如M3和M4,引入了另一种指令集Thumb-2,同时支持16位、32位指令集,可以混合在一起编程。CPU自动识别。
2、统一的汇编语言:UAL
ARM公司推出了: Unified Assembly Language,UAL,统一汇编语言,你不需要去区分这些指令集。
在程序前面用CODE32/CODE16/THUMB,表示指令集:ARM/Thumb/Thumb2
日常工作中,只需要这么几条汇编指令,从名字就可以猜出含义:
MOV LDR/STR LDM/STM AND/OR ADD/SUB B/BL DCD ADR/LDR CMP
如果想要深入学习,可以学