type
status
date
slug
summary
tags
category
icon
password
1 、LDR 和 STR
加载/存储字和无符号字节指令,使用单一数据传送指令(STR 和 LDR)来装载和存储,单一字节或字的数据从/到内存LDR指令用于从内存中读取数据放入寄存器中,STR指令用于将寄存器中的数据保存到内存。
指令格式如下:
2、LDM 和 STM
批量加载/存储指令可以实现在一组寄存器和一块连续的内存单元之间传输数,LDM 为加载多个寄存器,STM 为存储多个寄存器,允许一条指令传送 16 个寄存器任何子集或所有寄存器。LDM /STM 的主要用途是现场保护、数据复制、参数传送等。
指令格式如下:
3、 SWP
寄存器和存储器交换指令,SWP 指令用于将一个内存单元(该单元地址放在寄存器Rn 中)的内容读取到一个寄存器 Rd 中,同时将另一个寄存器 Rm 的内容写入到该内存单元中。
指令格式如下: SWP{cond}{B} Rd,Rm,[Rn]、
其中,B 为可选后缀,若有B,则交换字节,否则交换 32 位字;Rd 为数据从存储器加载到的寄存器;Rm 的数据用于存储到存储器中,若 Rm 与 Rn 相同,则为寄存器与存储器内容进行交换;Rn 为要进行数据交换的存储器地址,Rn 不能与 Rd 和 Rm 相同.
SWP 指令举例如下:
数据传送指令
4、MOV
数据传送指令,将 8 位图立即数或寄存器(operant2)传送到目标寄存器 Rd,可用于移位运算等操作。
指令格式如下:
MOV{cond}{S} Rd,operand2
MOV 指令举例如下:
5、MVN
数据非传送指令,将8 位图立即数或寄存器(operand2)按位取反后传送到目标寄存器(Rd),因为其具有取反功能,所以可以装载范围更广的立即数。
指令格式如下:
MVN{cond}{S} Rd,operand2
MVN 指令举例如下:
算术逻辑运算指令
6、ADD
加法运算指令,将 operand2 数据与 Rn 的值相加,结果保存到 Rd 寄存器。
指令格式如下:
ADD{cond}{S} Rd,Rn,operand2
ADD 指令举例如下:
7、SUB
减法运算指令,用寄存器 Rn 减去 operand2.结果保存到 Rd 中。
指令格式如下:SUB{cond}{S} Rd,Rn,operand2
SUB 指令举例如下:
8、RSB
逆向减法指令,用寄存器 operand2 减法 Rn,结果保存到 Rd 中。
指令格式如下:RSB{cond}{S} Rd,Rn,operand2
RSB 指令举例如下:
9、ADC
带进位加法指令,将 operand2 的数据与 Rn 的值相加,再加上 CPSR 中的 C 条件标志位,结果保存到 Rd 寄存器。
指令格式如下; ADC{cond}{S} Rd,Rn,operand2 ADC
指令举例如下:
10、SBC
带进位减法指令。用寄存器 Rn 减去 operand2,再减去 CPSR 中的 C 条件标志位的非(即若 C 标志清零,则结果减去 1),结果保存到 Rd 中。
指令格式如下: SCB{cond}{S} Rd,Rn,operand2
SBC 指令举例如下:
11、RSC
带进位逆向减法指令。用寄存器 operand2 减去 Rn,再减去 CPSR 中的 C 条件标志位,结果保存到 Rd 中。
指令格式如下:RSC{cond}{S} Rd,Rn,operand2
RSC 指令举例如下:
12、AND
逻辑与操作指令,将 operand2 值与寄存器 Rn 的值按位作逻辑与操作,结果保存到Rd 中。
指令格式如下: AND{cond}{S} Rd,Rn,operand2
AND 指令举例如下:
13、ORR
逻辑或操作指令,将operand2的值与寄存器Rn的值按位作逻辑或操作,结果保存到Rd 中。
指令格式如下:ORR{cond}{S} Rd,Rn,operand2 ORR
指令举例如下:
14、 EOR
逻辑异或操作指令。将operand2的值与寄存器Rn的值按位作逻辑异或操作,结果保存到 Rd 中。
指令格式如下: EOR{cond}{S} Rd,Rn,operand2
EOR 指令举例如下
- 作者:404False
- 链接:https://blog.404nofoundx.top//article/92210ab7-8522-4f9b-ae54-f1095dad916a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。