ARM处理器架构的Thumb指令集中关于IT指令的使用

在ARMv6T2以及ARMv7架构扩展了Thumb指令集,其中加入了IT指令,进一步增强了代码的紧凑性。

Thumb中有一个比较有意思的指令——IT,这条指令用于根据指定的条件来执行后面相继的四条指令。当然,Thumb-2中大部分算术逻辑指令都含有带条件执行的特征,不过Thumb-2是32位的。如果你需要更紧凑的指令,那么使用Thumb结合ThumbEE来做带条件的指令执行还是不错的选择。Thumb本身不具备带条件指令执行的特性。

IT指令的描述为:IT{<x>{<y>{<z>}}} <firstcond>

其中,<x>表示第二条指令的条件;<y>表示第三条指令的条件;<z>表示第四条指令的条件。<firstcond>是条件操作数,表示第一条指令的条件。

<x>、<y>、<z>的标识其实就两种符号——T或E。T表示Then,表示相应的指令所满足的条件与<firstcond>一致;E表示else,表示相应的指令所满足的条件与<firstcond>完全相反。因此,对于第一条指令而言,总是为T的,因此不需要在IT中显示给出,它直接对应于<firstcond>的条件。

另外,在IT块中不能再使用IT指令。即,相继的四条指令中不允许出现IT指令。

下面给出一些示例代码:

    cmp     r1, #0
    itete   eq
    moveq   r1, #10
    movne   r2, #20
    moveq   r3, #30
    movne   r12, #50

    stmia   r0, {r1-r3, r12}

    bx      lr

可能会觉得奇怪,为何itete 指令中的 ete 已经表示了条件了,为何下面的指令中还需要条件,moveq,movne。这点需要注意。

时间: 2024-10-06 21:55:18

ARM处理器架构的Thumb指令集中关于IT指令的使用的相关文章

ARM 处理器架构【转】

ARM 处理器架构 转自:http://www.arm.com/zh/products/processors/instruction-set-architectures/index.php ARM 架构是构建每个 ARM 处理器的基础.ARM 架构随着时间的推移不断发展,其中包含的架构功能可满足不断增长的新功能.高性能需求以及新兴市场的需要.有关最新公布版本的信息,请参阅 ARMv8 架构. ARM 架构支持跨跃多个性能点的实现,并已在许多细分市场中成为主导的架构.ARM 架构支持非常广泛的性能

ARM处理器架构理论知识

** ARM处理器的寄存器,ARM与Thumb状态,7中运行模式:http://blog.chinaunix.net/uid-28458801-id-3494646.html 原文地址:https://www.cnblogs.com/freyluo/p/11286987.html

处理器架构——从RISC与CISC到x86、ARM、MIPS

1.CISC(Complex Instruction SetComputer,复杂指令集计算机) 复杂指令集(CISC,Complex Instruction Set Computer)是一种微处理器指令集架构(ISA),每个指令可执行若干低阶操作,诸如从内存读取.储存.和计算操作,全部集于单一指令之中. CISC特点: 1.指令系统庞大,指令功能复杂,指令格式.寻址方式多: 2.绝大多数指令需多个机器周期完成: 3.各种指令都可访问存储器: 4.采用微程序控制: 5.有专用寄存器,少量: 6.

ARM处理器的寄存器,ARM与Thumb状态,7中运行模式

** ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 分类: 嵌入式 ARM处理器工作模式一共有 7 种 : USR  模式    正常用户模式,程序正常执行模式 FIQ模式(Fast Interrupt Request)     处理快速中断,支持高速数据传送或通道处理 IRQ模式     处理普通中断 SVC模式(Supervisor)     操作系统保护模式,处理软件中断swi  reset ABT  中止(Abort mode){数据.指令}    处理存储器故障.实现虚拟

ARM处理器寄存器和运行状态

ARM体系的CPU有以下7种工作模式: 1.用户模式(Usr):用于正常执行程序: 2.快速中断模式(FIQ):用于高速数据传输: 3.外部中断模式(IRQ):用于通常的中断处理: 4.管理模式(svc):操作系统使用的保护模式: 5.数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护: 6.系统模式(sys):运行具有特权的操作系统任务: 7.未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件: 当异常发生的时候CPU会进入到相应

基于ARM处理器的反汇编器软件简单设计及实现

写在前面 2012年写的,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析: 涉及的主要内容 分析ARM处理器指令的特点,以及编译以后可执行的二进制文件代码的特征: 将二进制机器代码经过指令和数据分开模块的加工处理: 分解标识出指令代码和数据代码: 然后将指令代码反汇编并加工成易于阅读的汇编指令形式的文件: 下面给出个示例

ARM处理器的寄存器

在ARM体系中通常有以下3种方式控制程序的执行流程: **在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节:每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节.整个过程是按顺序执行. **跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行.其中,B指令用于执行跳转操作:BL指令在执行跳转操作同时,保存子程 序的返回地址:BX指令在执行跳转操作同时,根据目标地址为可以将程序切换到Thumb状态:BLX指令执行3个操作,跳转到目标地址处执行,

ARM处理器

ARM公司提供架构,芯片公司在此架构上生产芯片 Tegra前几个是NVIDIA公司于2008年推出的基于ARM11构架通用处理器品牌."NVIDIA(英伟达?)Tegra?(图睿?)",tegra 4基于Cortex-A15架构4+1核.tegra 4 VS 高通骁龙800 Geforce(中文一般称为精视?)是一个英文产品的商标.GeForce是NVIDIA公司出品的显示芯片的一种系列.用于竞争AMD的Radeon系列显卡 nVIDIA显卡系列NVS 手机的处理器架构基本是ARM (

ARM处理器的工作状态(转)

ARM处理器的工作状态 在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态. <嵌入式系统开发与应用教程(第2版)>上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子: ARM核就好比一个高中学校,那种包含普通高中和职业高中的.普通高中就相当于ARM状态,职业高中就相当于Thumb状态,这样还不能理解的话:可以认为 泡泡卡丁车 中普通模式和加速模式,,卡丁车加速要等到集气管