Assembly Language (1)
工具:ARM 32-bit Cortex -M3,STM32F100RB Microcontroller
Preface
最近学到了基于ARM Cortex-M3的汇编语言,记录一些笔记,帮助自己理清一些概念,指令的作用等等,也供以后复习时回顾。都是笔者自己根据听课,以及自己的理解得到的一些总结,并不保证完全正确,若有错误,欢迎指正。
Registers 寄存器
stm32用的时32bit的寄存器: R0 -R15,以及xPSR。
R1-R12:general registers,每一个寄存器都是32位
R13是stack pointer用来存储栈的最顶端的地址,address points to ‘top’ of stacks
R14为LInk register, associated with subroutines’ address
R15为Program counter, 类似于GPS, 包含了下一个指令的地址
xPSR为status register,一共有5种状态,N Z C V Q
- N——negative flag
- Z——zero flag, 当结果为0时,Z为1
- C——carry flag, 用来表示是否有进位
- V——overflow flag 判断是否溢出
- Q——不常用
常用的一些指令
stm32的汇编程序的格式如下:
(Label) M