ARM处理器寻址方式

寻址方式是处理器根据指令给出的地址码字段来寻找物理地址的方式。

1、立即寻址

  立即寻址也称为立即数据寻址,在立即寻址中的操作码字段后面的地址码部分就是操作数据本身,在数据包含在指令当中,取出指令就取出了立即数。

ADD     R0,R0,#1

MOV    R0,#0X3FF

2、寄存器寻址

  在寄存器寻址中,操作数的值在寄存器中,就是利用指令中的地址码字段指出的寄存器中的数值作为操作数,指令执行时直接取出寄存器值操作,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。

ADD R0,R1,R2 MOV R1,R2

ADD    R0,R1,R2

MOV    R1,R2

3、寄存器间接寻址

  寄存器间接寻址指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数据地址指针。

SWP R1,R1,[R2] ADD R0,R1,[R2] LDR R0,[R1]

SWP    R1,R1,[R2]

ADD    R0,R1,[R2]

LDR     R0,[R1]

4、寄存器偏移寻址

  寄存器偏移寻址是ARM指令集特有的寻址方式,当第二操作数是寄存器偏移方式时,第二个寄存器操作数在第一个操作数结合前选择移位操作。

MOV R0,R2,LSL #3 ANDS R1,R1,R2,LSL R3

MOV     R0,R2,LSL #3

ANDS    R1,R1,R2,LSL R3

5、基址变址寻址

  基址变址寻址就是将寄存器内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变地址方式常用于访问某基址附近的地址单元。

LDR R0,[R1,#0X0F] LDR R0,[R1],#4 LDR R0,[R1,R2]

LDR    R0,[R1,#0X0F]

LDR    R0,[R1],#4

LDR    R0,[R1,R2]

6、多寄存器寻址

  多寄存器寻址就是一次可以传送几个寄存器的值,这种寻址方式可以用一条指令完成传送最多16个通用寄存器的值。

LDMIA    R0,{R1,R2,R3,R4}

STMIA     R0,{R3-R5,R10}

7、堆栈寻址

  1、堆栈是一种数据结构,按先进后出的方式工作,使用一个称为堆指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。
  2、当堆栈指针指向最后压入数据时,称为满堆栈,而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈,同时根据堆栈的生成方式,又可分为递增堆栈和递减堆栈。
  3、当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址时,称为为递减堆栈。
  4、ARM微处理器支持四种类型的堆栈工作方式:满增堆栈、满减堆栈,空增堆栈、空减堆栈。

LDMFD SP!,{R1-R7,LR} STMFD SP!,{R1-R7,LR}

LDMFD    SP!,{R1-R7,LR}

STMFD     SP!,{R1-R7,LR}

转载于:https://www.cnblogs.com/usingnamespace-caoliu/p/9691586.html

[ARM] ARM处理器寻址方式相关推荐

  1. 【ARM】ARM处理器寻址方式

    00. 目录 文章目录 00. 目录 01. 概述 02. 数据处理指令寻址方式 2.1 立即数寻址方式 2.2 寄存器寻址方式 2.3 寄存器移位寻址方式 03. 内存访问指令寻址方式 3.1 字及 ...

  2. x86架构和arm架构处理器分析

    x86架构和arm架构处理器分析 目录: 1.两种cpu架构:冯洛伊曼和哈佛 2.x86架构和arm架构分析 3.x86架构和arm架构功耗探究 一.两种cpu架构: 目前主流的cpu处理 器都采用了 ...

  3. 从CPU架构--x86架构和arm架构处理器--功耗

    目录: 1.两种cpu架构:冯洛伊曼和哈佛 2.x86架构和arm架构分析 3.x86架构和arm架构功耗探究 一.两种cpu架构: 目前主流的cpu 处理器都采用了冯洛伊曼架构或者哈佛架构,那么这和 ...

  4. 解读 | Arm 机器学习处理器的独特之处

    https://www.leiphone.com/toutiao/ngj0RTJGo5YNwsH2.html 雷锋网按:Arm 社区近期发表文章,深入地介绍了一个机器学习处理器(Machine Lea ...

  5. 嵌入式ARM多核处理器并行化方法

    from:http://ee.ofweek.com/2014-11/ART-11001-2808-28902672.html 目前,嵌入式多核处理器已经在嵌入式设备领域得到广泛运用,但嵌人式系统软件开 ...

  6. 使用Troll对ARM Cortex-M处理器进行系统内核调试

    本文讲的是使用Troll对ARM Cortex-M处理器进行系统内核调试, Troll是用于ARM Cortex-M系统的C语言源代码级调试器,可通过高端的blackmagic硬件调试探针进行访问,并 ...

  7. 服务器可否替代手机芯片,基于ARM的处理器能取代桌面处理器吗?

    科技的发展速度太快了,从手机进入智能时代开始,手机处理器的速度也越来越快了,以前人们办公都是在电脑端进行的,随着手机的功能越来越多,手机处理器速度越来越快,已经有一小部分的工作可以在手机上完成了.那么 ...

  8. ARM系列处理器的分类

    1.ARM ARM即以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品. ARM ...

  9. 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器的示例系统级设计(第一章:文件目录AHB组件开发平台)

    设计工具包中文件目录 目录名 目录内容 logical Verilog组件包括AHB-Lite和APB基础组件.外设.APB子系统以及AHB-Lite和APB协议. systems 示例系统的设计文件 ...

最新文章

  1. 实验long raw 和 blob两种数据类型遇到dblink的表现
  2. java mysql安装教_大学java教案之MySQL安装图解
  3. Android快速开发框架-ZBLibrary 源码分享
  4. 【django】聚合函数和排序函数
  5. Vue实现仿音乐播放器10-更多按钮实现下拉刷新
  6. 【编程5】斐波那契数列 + 递归+LeetCode50
  7. wso2 安装_WSO2注册表安装简介
  8. c#按ESC退出 或者接受其他键盘消息
  9. Win7系统打印机删除不掉的解决方法
  10. 除了给予人权,欧洲议会还要让机器人纳税
  11. 程序员是如何捕猎大象的[转]
  12. 一些社会运行的底层规律,和你的利益息息相关
  13. MAC安装MySQL的正确姿势
  14. 特斯拉副总裁回应“质量不合格”报道:离谱 已准备起诉
  15. java application pdf_從Java應用程序中即時打開PDF文件
  16. 中南大学计算机网络期末试卷,中南大学计算机网络期末复习试卷1
  17. Hive从身份证号中提取相关信息_性别_年龄_出生日期_详细地址
  18. 那些不能在一起吃的水果搭配
  19. 全国中小学教师计算机水平考试,中小学教师计算机水平考试笔试试题
  20. 详解DNS(理论篇)

热门文章

  1. es分页和mysql分页_用户logstash同步mysql数据到es中7.4.1版本以后输出的sql日志中没有分页信息...
  2. 齿轮箱常见故障数据_齿轮箱故障分析和维护使用
  3. 残差曲线意义_生存曲线(三):统计分析方法这么多,到底选哪个?
  4. python语言的多行注释以什么开头和结尾_Python单行注释与多行注释
  5. coursera 计算概论与程序设计基础(李戈)-第一题
  6. 递归获取拉平存储的树每个节点到达的路径
  7. BZOJ1051|HAOI2006受欢迎的牛|强连通分量
  8. 《黄聪:手机移动站SEO优化教程》4、如何实现手机移动网站和PC站点的自主适配...
  9. Nginx进行流量copy到测试环境
  10. 一般别人去湖大找门,我都笑得半死