`
isiqi
  • 浏览: 16553582 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ARM上的汇编优化小方法

阅读更多
1.加减法,逻辑操作占一个周期,目的地址是PC寄存器时增加一个周期。分支指令占3个周期。在cache命中的情况下,16位和8位的装载指令(LDRH、LDRH等)占一个周期,但紧跟的2个周期不能使用装入的数据。32位装载指令占一个周期,紧跟的一个周期不能使用装载数据。如果装载入PC,同样要增加2个周期。
LDRr1,[r2] ADD r1,r1,r3ADD r4,r4,r5 占4个周期
改变次序后
LDRr1,[r2] ADD r4,r4,r5ADD r1,r1,r3占3个周期

2. load指令占时间比较长,在循环中可以使用预载的方法将load与跳转指令放在一起,减少流水线的断流。
例如:
loop
LDRB r2,[r1]
...............//do
Bloop
更改为
LDRB r2,[r1]
loop
.............. //do
LDRB r2,[r1]
B loop

3. 循环展开时,可以在计算i步时就加载i+1步的数据,在i步的结果还没准备好时执行i+1步计算。

4. ARM只有16个可见寄存器,其中14个通用寄存器,1个堆栈指针r13,1个程序计数器r15。在图像处理的应用中很多是8位的操作数,可以利用32为寄存器一次进行两组运算。
例如:加操作 100 + 50 和 2 + 3
位 24 16 8 0
操作数1 0 100 0 2
操作数2 0 50 0 3
结果0 150 0 5

5. 寄存器数量不够时,可用32为寄存器保存两个16位变量和4个8位变量。
分享到:
评论

相关推荐

    arm汇编手册中文版(chm).zip_ARM 汇编_arm 汇编_mmx_汇编_汇编chm

    ARM汇编语言是为ARM处理器设计的低级编程语言,它直接对应于硬件指令集,对理解处理器的工作原理和优化代码性能至关重要。ARM架构以其高效能、低功耗的特性,在移动计算和物联网领域占据主导地位。 在汇编语言中,...

    X86&ARM汇编优化sample/demo

    本资源是x86和ARM汇编优化的demo和sample,可以根据该demo的写法学习x86汇编优化和ARM汇编优化的基本写法,不明白的同学可以查看我的博客:https://soaringlee.blog.csdn.net/article/details/108424127和...

    ARM汇编语言官方手册(中文).pdf,arm汇编语言手册中文版,Asm

    ARM汇编语言是针对ARM架构处理器的一种低级编程语言,广泛应用于嵌入式系统开发、移动端性能优化等领域。对于初学者来说,掌握ARM汇编语言不仅可以深入理解计算机硬件工作原理,还能在特定场景下实现高效的代码编写...

    ARM IAR汇编器参考指南.zip_ARM 汇编语言_IAR汇编_IAR汇编语言_arm

    《ARM IAR汇编器参考指南》作为一本详细的教程,不仅涵盖了ARM汇编语言的基础知识,还深入讲解了IAR汇编器的使用方法和技巧。通过这份手册,开发者能够了解如何编写高效的汇编代码,理解汇编器的内部工作原理,以及...

    ARM汇编语言官方手册(中文)pdf_逆向分析_手机app逆向arm参考资料_arm汇编语言pdf_ARM汇编官方_ARM汇编_

    通过深入学习《ARM汇编语言官方手册(中文)》,开发者可以提高对ARM处理器底层运作的理解,从而更好地进行系统级编程、优化和安全分析。这本书是手机app逆向工程师的必备参考资料,无论是为了分析代码行为、调试...

    ARM标准汇编与GNU汇编

    ARM汇编是针对ARM架构处理器的低级编程语言,而GNU汇编则是GNU开发工具集的一部分,用于在多种架构上编写汇编代码,包括ARM平台。本文将详细探讨这两个主题,并为Linux开发人员提供宝贵的指导。 一、ARM汇编语言...

    ARM64汇编.pdf

    ARM64汇编是一种针对苹果iOS设备的底层编程语言,主要用于性能优化、硬件驱动开发和逆向工程等领域。iOS真机测试时使用ARM64汇编指令能够帮助开发者进行更精确的性能调优和故障排查。ARM64汇编语言的关键概念包括...

    ARM-汇编指令集-PDF版

    ARM汇编指令集是ARM架构微处理器编程的基础,它包含了用于控制和操作ARM处理器的一系列指令。ARM(Advanced RISC Machines)处理器以其高效、低成本和低能耗的特点,在嵌入式系统、消费电子、多媒体处理、数字信号...

    ARM汇编指令集详解

    ARM汇编指令集是嵌入式系统开发中的基础,它是一种低级编程语言,用于直接控制计算机硬件。本文将深入探讨ARM汇编指令集的主要概念、语法和常见指令,帮助你更好地理解和应用这一关键技术。 首先,理解ARM架构是至...

    visualwin_127.rar 学习arm汇编语言的软件

    通过韦东山的教程,结合VisualWin_127的使用,你可以逐步掌握ARM汇编语言的精髓,从而在嵌入式系统开发或者底层优化等领域大展拳脚。 总的来说,掌握ARM汇编语言不仅能提升你的编程技能,也能让你对计算机硬件有更...

    arm汇编手册(中文版)

    以上只是ARM汇编语言学习的一小部分,深入掌握还需要结合具体的实例和实践经验,通过编写、调试和优化代码来不断提升技能。《ARM汇编手册》作为主要参考,提供了全面的指令详解和实例,是学习者不可或缺的工具书。

    ARM编译汇编指南.pdf

    文档中提到的“ARM编译汇编指南”旨在为开发者提供全面的指南,帮助他们理解和掌握在ARM架构下进行编译和汇编编程的方法与技巧。 #### RealView编译工具 文档中特别提到了RealView编译工具,这是ARM公司推出的一套...

    ARM实验汇编代码

    学习ARM汇编语言不仅可以提升对底层硬件的理解,还能在特定场景下优化程序性能。 #### 二、示例代码分析 ##### 2.1 Example1 **代码段:** ``` AREA Example1, CODE, READONLY ENTRY CODE32 START MOVR0, #15 ...

    arm汇编练习程序

    ARM汇编语言是嵌入式系统开发中的基础工具,尤其在低功耗、高性能的嵌入式设备中广泛应用。ARM架构处理器使用的是复杂指令集计算(CISC)模型,其汇编语言为开发者提供了直接控制硬件的能力。在这个“ARM汇编练习...

    ARM嵌入式汇编程序实例排序

    ARM汇编语言是一种低级编程语言,每条指令对应CPU的一次操作。其语法结构通常包括指令操作码、操作数和地址模式。常见的指令类型有数据处理指令、分支指令、加载和存储指令等。例如,LDR(Load Register)用于从内存...

    ARM汇编语法的相关介绍

    ARM汇编语言在性能、资源占用、功耗方面表现出色,因此在资源受限的设备上尤其受到青睐。在深入学习ARM汇编语言之前,通常需要具备计算机组成原理、计算机体系结构等相关知识背景。 ARM汇编语法中经常使用的gcc...

    ARM GCC 内联汇编参考手册

    通过以上介绍,我们可以看到ARM GCC内联汇编提供了一种强大而灵活的方式来优化C代码。然而,这也需要开发人员具备一定的汇编语言基础和对ARM架构的深入了解。正确使用内联汇编可以显著提高代码性能,但错误的使用也...

    ARM9汇编指令大全

    汇编语言是与处理器架构最直接的交互方式,理解并熟练掌握ARM9的汇编指令是进行底层编程和优化的关键。本文将深入探讨ARM9处理器支持的汇编指令,旨在为开发者提供全面的参考。 **1. 数据处理指令** ARM9的汇编指令...

    ARM汇编手册中文版.rar

    《ARM汇编手册中文版》是一本专门为学习ARM架构汇编语言设计的参考资料,它涵盖了ARM处理器的基础知识、指令系统、编程模型以及相关的程序设计技巧。对于深入理解ARM处理器的工作原理,以及在嵌入式系统开发中编写...

Global site tag (gtag.js) - Google Analytics