嵌入式,ARM指令基础

简介: ARM两种数据存储格式:大端格式,数据高字节存储在地址低字节,数据低字节存储在地址高字节                                        小端格式,数据高字节存储在地址高字节,数据低字节存储在地址低字节 ARM工作模式:用户...

ARM两种数据存储格式:大端格式,数据高字节存储在地址低字节,数据低字节存储在地址高字节

                                       小端格式,数据高字节存储在地址高字节,数据低字节存储在地址低字节

ARM工作模式:用户模式Usr,正常执行程序

                         快熟中断模式FIQ,用于高速传输数据

                         外部中断模式IRQ,用于通常的中断处理

                         管理模式svc,操作系统使用的保护模式

                         数据访问终止模式abt,当数据或指令预取终止时进入该模式,用于虚拟存储和存储保护

                         系统模式sys,运行有特权的操作系统任务

                         未定义指令终止模式und,当未定义的指令执行时进入该模式,用于硬件支持

ARM 的运行模式可以通过软件改变,或者通过外部中断改变。除用户模式外的其他6种模式有叫非用户模式或特权模式,除去用户模式和系统模式,其他5种又叫异常模式,用于处理中断或异常

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,他们不能同时被访问。但是在任何时候R0~R14,程序计数器PC(R15),一个状态寄存器(CPSR)都可以访问。

不分组寄存器R0~R7,分组寄存器R8~R14

R8_fiq~R14_fiq,  R13_svc~R14_svc,  R13_abt~R14_abt,  R13_irq~R14_irq,R13_und~R14_und

R13堆栈指针(SP),R14函数指针,指向子函数的返回地址(LR

SPSR用来保护异常模式下CPSR的值

嵌,ARM基础 - 等等等等等 - 等等等等等的博客

 

嵌,ARM基础 - 等等等等等 - 等等等等等的博客

 

嵌,ARM基础 - 等等等等等 - 等等等等等的博客
V溢出标志,C进位标志,Z结果为0,N负数,最高位位1
 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ARM寻址方式
立即数寻址:ADD  R0,R0,#1                       R0=R0+1
                     ADD  R0,R0,#0X83                 R0=R0+0X83
                     ADD  R0,R0,#&83                   R0=R0+0X83
寄存器寻址    ADD  R0,R1,R2                      R0=R1+R2
寄存器间接寻址     ADD  R0,R1, [R2]              R2存放的不是操作数,而是操作数的地址 
基址变址寻址         LDR  R0,[R1,#4]                 R0=[R1+4]
                              LDR  R0,[R1,#4]!           R0=[R1+4], R1=R1+4 
                              LDR  R0,[R1],#4               R0=[R1], R1=R1+4
多寄存器寻址         LDMIA  R0,{R1,R2,R3,R4}
                              IA表示每次执行完加载操作后,R0按字长增加,R1=R0,R2-R0+4,R3=R0+8,R4=R0+12
相对寻址                 MOV   PC,  LR                     从子程序返回
堆栈寻址                先进后出。
满堆栈:堆栈指针指向最后压入堆栈的有效数据
空堆栈:堆栈指针指向将要压入堆栈的数据地址
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
相关文章
|
7月前
|
监控 网络协议 安全
验证嵌入式ARM32环境中4G模块的有效方法
验证嵌入式ARM32环境中4G模块的有效方法
154 0
|
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站神经网络与深度学习,商城