我就自己在学习arm指令中记录的关于队长方面的知识做一个简单的总结,希望对大家有所帮助。
1、寄存器 R13 在 arm 指令中常用作堆栈指针
2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄存器: R13_ 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。
3、寄存器R13在arm指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间,这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。
4、有四种类型的堆栈:
堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。
当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。
同时,根据堆栈的生成方式,又可以分为递增堆栈(Ascending Stack)和递减堆栈(DecendingStack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有四种类型的堆栈工作方式,ARM 微处理器支持这四种类型的堆栈工作方式,即: ◎ Full descending 满递减堆栈堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。 ARM-Thumb过程调用标准和arm、Thumb C/C++ 编译器总是使用Full descending 类型堆栈。
◎ Full ascending 满递增堆栈堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。
◎ Empty descending 空递减堆栈堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向下一个将要放入数据的空位置。
◎ Empty ascending 空递增堆栈堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向下一个将要放入数据的空位置。
5、操作堆栈的汇编指令堆栈类型 入栈指令 出栈指令 Full descending STMFD (STMDB) LDMFD (LDMIA) Full ascending STMFA (STMIB) LDMFA (LDMDA) Empty descending STMED (STMDA) LDMED (LDMIB) Empty ascending STMEA (STMIA) LDMEA (LDMDB)
关键字:arm 指令学习 知识点总结
引用地址:
arm指令学习之记录关于队长的知识点总结
推荐阅读最新更新时间:2024-03-16 14:34
基于ARM处理器的TSC2046触摸屏控制器的应用
0 引言 随着信息技术的不断发展,嵌入式系统正在越来越广泛地应用到消费类电子、通信设备等便携式电子类产品中。触摸屏由于其轻便、占用空间少、灵活等优点,已经逐渐取代键盘,成为嵌入式系统中最简单、方便、自然的一种人机交互方式。触摸屏分为电阻、电容、表面声波、红外线扫描等类型,其中使用最多的是四线或五线电阻触摸屏。四线电阻触摸屏是由两个透明电阻膜构成的,在它的水平和垂直电阻网上施加电压,就可通过转换面板在触摸点测量出电压而对应出坐标值。 TSC2046是典型的逐次逼近寄存器型A/D变换器,其结构以电容再分布为基础,包含了取样/保持功能,支持低电压的I/O接口。本文介绍了利用飞利浦公司的LPC2100系列ARM芯片LPC2132、T
[单片机]
I2C总线实现TMS320VC5509A引导装载设计
1 引言 DSP芯片的Bootloader程序用于上电时将用户程序从外部非易失性、慢速存储器或外部控制器中装载到片内高速RAM中,保证用户程序在DSP内部高速运行,TI公司的C55x系列DSP芯片提供多种装载模式,主要包括HPI引导装载、串行E2ROM引导装载、并行引导装载、串行口引导装载、I2C总线E2ROM引导装载等,通常使用的是并行引导装载模式,该方式引导速度快实现简单,但是体积和功耗也较大,随着串行接口存储设备容量的提高,串行引导方式体积小、功耗低的优势便显现出来了,所以使用ARM的串行接口对DSP进行引导装载,不仅能省去存储芯片,而且利用ARM的ISP功能,可以根据需要改变用户程序,有利于系统的维护和升级。 本文以TM
[应用]
ARM Cortex-M3 存储器映射
在4GB的地址空间中,ARM Cortex-M3已经粗线条的平均分成了8快,每块512MB, 每块也都规定了用途。每个快的大小都有512MB,显然这个非常大的,芯片厂商在 每个块的范围内设计各具特色的外设时,并不一定都用得完,都只是用了其中的一部分 而已。Cortex-M3的存储器映射如下图所示: 在这8个Block里面,由3个Block非常重要,也是我们最关心的三个块。 Block0用来设计成内部FLASH; Block1用来设计成内部RAM; Block2用来设计成片上的外设; 这三个Block内部具体区域 功能划分如下: 存储器Block0内部区域功能划分:Block0主要用于设计片内的FLASH
[单片机]
ARM历程十——毕业设计(钟表)
#include S3C2440addr.h #include math.h #define pi 3.141593 U16 SEC, MIN, HOUR, TmpSEC_10, TmpMIN_10, TmpHOUR_10,TmpSEC_1,TmpMIN_1,TmpHOUR_1; U16 SEC_x, SEC_y, MIN_x, MIN_y, HOUR_x, HOUR_y, OldMIN=10000; U16 PandColor_big ; U16 PandColor_sml ; extern U16 Flag; extern U16 fz; extern const unsigned char gImage_goback
[单片机]
ARM便携式系统功耗管理的系统级设计
arm微处理器因其高性能和低功耗的特性,特别适合于便携式系统的应用。而系统级的问题对于有效的功耗管理也是非常重要的。本文主要对硬件及系统的功耗管理作一些介绍。 功耗管理电路能尽可能地降低便携式系统的用电量。最主要的优点是延长电池的使用寿命,当然还有其他一些优点,如减少散热量等。充分了解系统各部分组件的耗电情况、降低系统哪部分耗电量比较合理等问题是至关重要的。功耗管理是由软件、处理器、外设、电源等一起构成的系统问题。 处理器 便携式系统的处理器中有大量与系统其他电路相连的开关晶体管,消耗了大量的电能。因处理器运行着软件,所以可使其中某些不执行任务的部件关断或减慢运行速度。 CMOS基础 处理器由CMOS电路构成。下面的公
[单片机]
ARM WIFI AP 模式 使用 iptables nat 转发 通过 LAN 网线上网
编译内核,支持 iptables 和 forward 和 nat。 编译内核,使用新内核启动arm 开发板。 编译内核支持 iptables - Networking support (NET ) - Networking options - Network packet filtering framework (Netfilter) (NETFILTER ) - IP: Netfilter Configuration 本开发板是通过 LAN 有线连接到 路由器上。路由器网段为 192.168.1.1 首先要配置 LAN 的网关,DNS 等 ,因为之前已经配置好 dhcp 如果你不是使用 NFS
[单片机]
英特尔X86与ARM的“架构王”之争
目前英特尔X86和ARM架构占据了全球微处理器指令集架构的主流市场,其中英特尔X86主宰了计算机、服务器等高性能高功耗领域,ARM架构则几乎垄断了9成移动通信芯片,活跃在手机、物联网等低功耗低成本应用,二者关于“架构王”的竞争持续至今。 8月初的一则传闻更是将它们再次推向了风口浪尖。据消息称华为将卖掉服务器业务,主要出售采用英特尔X86架构的服务器业务,而保留采用ARM架构的鲲鹏芯片的服务器业务。 那么英特尔X86和ARM架构是如何发展以及怎样构成竞争的?这中间又夹杂着怎样的“恩怨情仇”? 先发制人:英特尔X86 1968年,从仙童半导体“出走”的戈登∙摩尔、诺伊斯等人花费了1.5万美元从IN-TELCO公司手中买下了Inte
[手机便携]
超级ARM DIY计算机平台MarS Board
“好奇号”登录火星,其使命是探寻火星资源,而MarS Board超级ARM DIY 计算机平台登录嵌入式世界,将带你去一个更强更快更好的软硬件平台,寻找全新的idea,而非局限于现有的硬件平台。探索MarS Board,你会发现更多意想不到的设计方案。ARM DIY计算机平台是由英蓓特科技自主开发设计,4月1日预发布,得到极好的市场反馈。截止7月1号,国际国内客户预定量已经达到891pcs MarS Board,突破Freescale i.MX6双核处理器缺货等重重阻碍,第一批1Kpcs有现货,于7月1日起可马上发货。 MarS Board 是什么 1.双核独立运行操作平台 MarS Board是基于F
[模拟电子]