嵌入式,ARM指令集

简介: 跳转指令,完成向前后向后32M跳转                  B跳转            BL带返回的跳转             BLX带返回和状态切换的跳转           BX带状态切换的跳转                  B{条...

跳转指令,完成向前后向后32M跳转

                 B跳转            BL带返回的跳转             BLX带返回和状态切换的跳转           BX带状态切换的跳转

                 B{条件}    目标地址

                 BL{条件}    目标地址,  跳转时会保存当前pc值到R14

嵌,ARM指令集 - 等等等等等 - 等等等等等的博客
数据传送指令
MOV{条件}{S}   目的寄存器,源操作数                   有s就会影响CPSR中的条件标识位
            MOV  R0,R1       将R1值赋给R0
            MOV  R0,R1,LSL #3           将R1值左移3位,赋值给R0
MVN{条件}{S}   目的寄存器,源操作数              mvn与mov不同之处是,赋值之前将源操作数取反
            MVN   R0, #0xff                      R0=0xffffff00
CMP{条件}  操作数1,操作数2              一个寄存器的内容与另一个寄存器的内容或立即数比较,并改变CPSR中的标志位
TST{条件}  操作数1,操作数2                一个寄存器的内容和另一个寄存器的内容或立即数按位与,并根据结果改变CPSR
            TST  R1,#%1                            测试R1是否设置最低位(%表示二进制)
ADD{条件}{S}  目的寄存器,操作数1,操作数2                  加法,结果存放目的寄存器,操作数1必须是寄存器
            ADD  R0,R1,R2
            ADD  R0,R1,#2
            ADD  R0,R1,R2, LSL  #3
SUB{条件}{S}  目的寄存器,操作数1,操作数2                   减法,结果存放目的寄存器,操作数1必须是寄存器
            SUB  R0,R1,R2
            SUB  R0,R1,#2
            SUB  R0,R1,R2, LSL  #3
AND{条件}{S}  目的寄存器,操作数1,操作数2                   逻辑与,结果存放目的寄存器,操作数1必须是寄存器
            AND  R0,R1,#3
ORR{条件}{S}  目的寄存器,操作数1,操作数2                   逻辑或,结果存放目的寄存器,操作数1必须是寄存器
            AND  R0,R1,#3
BIC{条件}{S}  目的寄存器,操作数1,操作数2                    清除 ,结果存放目的寄存器,操作数1必须是寄存器
            AND  R0,R1,#%1011                   将R1的第0、1、3位清零,其余位不变
MUL{条件}{S}  目的寄存器,操作数1,操作数2                   逻辑与,结果存放目的寄存器,操作数1必须是寄存器
            MU   R0,R1,R2
MRS{条件}通用寄存器,程序状态寄存器  
MSR{条件}程序状态寄存器,通用寄存器  
            MSR  CPSR/SPSR_,通用寄存器 
            [31:24] 条件标识位域f               [23:16]状态位域s           [15:8]扩展位域x         [7:0]控制位域c
 
 
 
加载/存储
LDR{条件} 目的寄存器,             将存储器中的一个32位字数据传送到目的寄存器
        LDR  R0 ,[R1]
        LDR  R0 ,[R1,R2]
        LDR  R0 ,[R1,#8]
        LDR  R0 ,[R1,R2]!
        LDRB  R0 ,[R1]              只取8位字节,高24位清零
        LDRH  R0 ,[R1]              加载16位半字数据,高16位清零
STR{条件} 源寄存器,            将寄存器数据存储在存储器
 
LDM{条件}{类型}  基址寄存器{!},   寄存器列表{^}             批量加载
  
嵌,ARM指令集 - 等等等等等 - 等等等等等的博客 嵌,ARM指令集 - 等等等等等 - 等等等等等的博客
 
 
SWP{条件}    目的寄存器,源寄存器1,【源寄存器2】             字数据交换
         SWP  R0,R1, [R2 ]                将R2所指的存储单元数据送到R0,将R1数据送到R2所指的存储单元
SWPB{条件}  目的寄存器,源寄存器1,【源寄存器2】             字节数据交换
 
 
移位操作(通用寄存器或者立即数)
LSL    逻辑左移                   ASL   算数左移            LSR   逻辑右移           ASR  算术右移
ROR  循环右移
LSL=ASL
 
异常产生指令
SWI    软件中断           BKPT       断点中断
SWI   0x02   调用操作系统编号为02的系统例程
相关文章
|
2月前
|
存储 移动开发 C语言
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
|
2月前
|
编译器 C语言 计算机视觉
【ARM汇编速成】零基础入门汇编语言之指令集(二)
【ARM汇编速成】零基础入门汇编语言之指令集(二)
191 0
|
2月前
|
数据处理
基于ARM的嵌入式原理与应用:ALU的功能与特点
基于ARM的嵌入式原理与应用:ALU的功能与特点
126 0
|
3月前
ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
|
5月前
|
开发者
云上应用管理问题之Arm指令集和Arm公司的特点是什么
云上应用管理问题之Arm指令集和Arm公司的特点是什么
|
6月前
|
存储 Ubuntu 编译器
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
|
6月前
|
Ubuntu Unix Linux
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(一)
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(一)
|
6月前
|
Linux 编译器 语音技术
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(二)
合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(二)
|
5月前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
|
6月前
|
存储 算法 Linux
详细解读ARM嵌入式整理
详细解读ARM嵌入式整理
44 0