2.4 ARM寻址方式

所谓的寻址方式就是处理器指令中给出的信息来找到指令所需要的操作数的方式

1. 立即数寻址

立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数,这个操作数被称为立即数,对应的寻址方式就叫做立即数寻址例如指令如下

ADD????R0,????R0,????#0x3f;????R0?R0+0x3f

在以上两条指令中,第一个源操作数即为立即数,要求以"#"为前缀。

2. 寄存器寻址

寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是一种执行效率较高的一种寻址方式。

ADD????R0,????R1,????R2;????R0?R1+R2

该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。

3. 寄存器间接寻址

寄存器间接寻址就是寄存器中存放的操作数是在内存中的地址

LDR????R0,????[R2]

在第一条指令中,一寄存器R2的值作为操作数的地址,在存储器中取得第一个操作数后与R1相加,结果存入寄存器R0中,第二条指令将以R1的值为地址的存储器中的数据传送到R0中

4. 基址变址寻址

基址变址寻址就是讲寄存器里的内容(基地址)与指令中给出的地址偏移量相加,从而得到操作数

LDR????R0,????[R0,????#0xf]

5. 相对寻址

与基址变址寻址方式相类似,相对寻址PC指针的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到的操作数的有效地址,以下程序段完成子程序的调用和返回。跳转指令BL采用了相对寻址方式:

BL????NEXT????????;跳转到子程序NEXT处执行

………..

NEXT

…………

MOV????PC,????LR????;从子程序返回

?

?

BL????NEXT????????;

时间: 2024-10-15 15:02:11

2.4 ARM寻址方式的相关文章

9.ARM寻址方式

9.ARM寻址方式 1.立即数寻址 ????立即数寻址,是一种特殊的寻址方式,操作数本身就是在指令中给出.只有取出指令就取到了操作数.这个操作数就称为立即数,对应的寻址方式就是立即数寻址方式.例如: ADD R0,R1,#0X45;这汇编的意思:R1+0x45->R0 ? 在以上两条指令中,第二个源操作数,是立即数,要求以"#"为前缀. 2.寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是一种执行效率较高的寻址方式. 该指令的执行效果是将寄存器R1和R2的内

ARM寻址方式,王明学learn

ARM寻址方式 所谓寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式. 一.立即数寻址 立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数.这个操作数被称为立即数,对应的寻址方式也就叫做立即数寻址.:立即数不能作为指令中的第二操作数.该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致.例如以下指令: ADD  R0,R0,#0x3f:R0←R0+0x3f 立即数,要求以“#”为前缀. 二.寄存器寻址 寄存器寻址就是利用寄存器中的数值作

ARM寻址方式

寻址方式: 所谓寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式. 1.立即数寻址 2.寄存器寻址 3.寄存器间接寻址 就是寄存器中存放的是操作数在内存中的地址 例如以下指令: LDR R0, [R2]:R0← [R2] 以寄存器R2的值作为操作数的地址,在存储器中(内存)取得一个操作数 4.基址变址寻址 基地址保存在R1中. 操作数在内存当中,比如R1数值为1000 则 操作数在内存中的地址是 1000+4 5.相对寻址 与基址变址寻址方式相类似,相对寻址:PC指针的当前值为基

ARM 寻址方式

寻址方式有 9种 1.寄存器 2.立即数 3.寄存器位移 4.寄存器间接 5.基址 6.多寄存器 7.堆栈 8.块拷贝 9.相对 1. MOV R1,R2 R1 = R2 2. MOV R0,#0x123 R0 = 0x123 3. MOV R0,R2,LSL #3 R0 = R2 逻辑右移3位 后的值 寄存器位移有4类5种方式,位移指令不单独存在 类别-种类 格式 : Rx,位移助记符 <op1> 1.逻辑位移 LS 1.左 LSL: 空隙用0填充 2.右 LSR: 空隙用0填充 2.算数右

[国嵌笔记][023][ARM寻址方式]

寻找方式 1.处理器根据指令中给出的信息来找到指令所需操作数的方式 2.立即数寻址 操作数本身在指令中给出,立即数前加”#”表示立即数寻址,操作数在指令中 3.寄存器寻址 利用寄存器中的数值作为操作数,操作数在寄存器中 4.寄存器间接寻址 利用存放在寄存器中的内存地址中的数值作为操作数,在寄存器加上[],操作数存放在内存中 5.基址变址寻址 利用寄存器中保存的基地址和立即数中保存的偏移,找到内存地址中的数值作为操作数,操作数保存在内存中 6.相对寻址 利用PC指针的当前值做为基地址和指令中地址标

Ok6410裸机驱动学习(二)ARM基础知识

1.ARM工作模式 ARM微处理器支持7种工作模式,分别为: l  用户模式(usr):ARM处理器正常的程序执行状态(Linux用户态程序) l  快速中断模式(fiq):用于高速数据传输或通道处理 l  外部中断模式(irq):用于通用的中断处理 l  管理模式(svc):操作系统使用的保护模式(Linux内核) l  中止模式(abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护 l  未定义指令模式(und):当未定义的指令执行时进入该模式,用于支持硬件协处理器的软件仿真

ARM内部大家族详解---嵌入式回归第四篇

学习ARM,首先要对ARM有个大体宏观的了解!这样后边学起来也会更轻松一些! 常用熟悉的一般分为: 1. 芯片:6410    210    2440   (这三款都是三星的) 2. ARM核:arm11    A8    arm9 3. 指令架构:armv7   armv6 首先ARM大家族的一些名词: 上面的图简化一下就是ARM内部之间的一些区分: 下面简单的看一下S3C2440芯片的架构图: 从上面芯片架构图中可以看出有一部分是ARM9TDMI (processor core)芯片的核,这

【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

Arm处理器寄存器介绍及汇编基础

1. ARM处理器支持7种工作模式 · User (usr): The normal ARM program execution state· FIQ (fiq): Designed to support a data transfer or channel process· IRQ (irq):    Used for general-purpose interrupt handling· Supervisor (svc):   Protected mode for the operating