通过英文全称,了解ARM指令代表的含义,可以快速记住所有ARM指令。我的一些表述,可能存在语法错误,不过不重要,我们的目的是理解。
每个指令用法的详解可以看这篇文章http://t.csdn.cn/mxd6H
本文不详解ARM指令用法,只对指令命名说一说自己的理解。
LDR load from register to memory—所以指令后接寄存器,再接内存地址LDR Rd,<地址>
STR store register to memory—所以指令后接寄存器,再接内存地址STR Rd,<地址>;
LDM load from memory to register—所以指令后接内存地址,再接寄存器LDM Rn,reglist{^}
STM store memory to register—所以指令后接内存地址,再接寄存器STM Rn,reglist{^}
寄存器Rn 为基址寄存器,装有传送数据的初始地址
(1) IA:每次传送后地址加4 increase after
(2) IB:每次传送前地址加4 increase before
(3) DA:每次传送后地址减4 decrease after
(4) DB:每次传送前地址减4 decrease before
(5) FD:满递减堆栈 Full descending
(6) ED:空递减堆栈 Empty descending
(7) FA:满递增堆栈 Full ascending
(8) EA:空递增堆栈 Empty ascending
SWP swap
MOV move
MVN move and NOT
ADD add
SUB subtract
RSB reverse subtract
ADC add with carry
SBC subtract with carry
RSC reverse subtract with carry
AND and
ORR or
EOR exclusive or
BIC bitwise clear
CMP compare
CMN compare nagative
TST test
MUL multiply
MLA multiply and add
UMULL unsigned multiply
UMLAL unsigned multiply and add
SMULL signed multiply
SMLAL signed multiply and add
B branch
BL branch with link
BX brach and exchange
CDP coprocessor data process
LDC load data from coprocessor
LDC store data to coprocessor
move data to coprocessor from register
move data to register from coprocessor
SWI software interrupt
move data to register from status register
move data to status register from register