ARM指令集----寻址方式

发布者:pengbinyyy最新更新时间:2017-01-09 来源: eefocus关键字:ARM指令集  寻址方式 手机看文章 扫描二维码
随时随地手机看文章

ARM指令集可以分为跳转指令,数据处理指令,程序状态寄存器传输指令,LOAD/Store指令,协处理器指令和异常中断产生指令6类


ARM指令集的寻址方式


  数据处理指令的操作数的寻址方式


  字以及无符号字节的Load、Store指令的寻址方式


  杂类Laod、Store指令的寻址方式


  批量Load、Store指令的寻址方式


  协处理器Load、Store指令的寻址方式


 


数据处理指令的操作数的寻址方式


  立即数荀子,每个立即数有由一个8位的参数循环右移 偶数位得到,其中循环移位的位数由一个4位二进制的两倍表示


指令编码格式:


常见的:


  MOV R0,#0xFC0 令RO的数字为0xFC0


  MOV R3,R2;将R2的数字放到R3中


  ADD R0,R1,R2;将R0数值等于R15的数值加上R2的数值,R0 = R1+R2


  MOV R0,R0,LSL#n ; R0 = R0*(2**n)


此外,左移右移指令要看寄存器,如果是寄存器的话,一般左移的位数或者是右移的位数,看寄存器的低八位


 


字以及无符号字节的LOAD和STORE


load指令用于从内存中读取数据放入寄存器中,store指令用于将寄存器中的数据保存到内存,ARM有两大LOAD和STORE指令,以内用于32位字类型数据操作以及8位的无符号的直接类型数据


另一类是操作16位半字节的数据以及8位的有符号字节类型的数据,这里介绍的是第一种类型的Load和STore


下面关键还是看代码:


LDR R0,[R1,R2] ;将内存单元R1+R2中的字读取到R0中


LDR R0,[R1,-R2];将内存单元R1-R2中的数据读到R0中


LDR R0,[R1,R2,LSL #2]将地址单元R1+R2*4中的数据读取到RO中


LDR R0,[R1,#4]! 将内存单元R1+4中的数据读取到R0中,同时R1 = R1+4


 


指令中寻址方式的语法格式:其中有个 ! 的话,设置W位,更新基址寄存器的内容


LDR R0,[R1,R2]!;将内存单元R1+R2中的数据读取到R0中,同时R1=R1+R2


LDR R0,[R1,R2,LSL#2]!将内存单元R1+R2*4中的数据读取到R0中,同时R1 = R1+r2*4


对于有两个寄存器的,这个比较重要


LDR R0,[R1],#4,将地址R1的内存单元数据读取到R0中,同时R1 = R1+4


LDR R0,[R1],R2,将地址为R1,的内存单元数据读取到R0中,然后R1 = R1+R2


LDR R0,[R1].R2.LSL#2;将地址为R1+4的内存单元读取到R0中,然后R1 = R1+R2*4


注意移位的时候要进行注意,这里面涉及很深,以后再总结


关键字:ARM指令集  寻址方式 引用地址:ARM指令集----寻址方式

上一篇:ARM指令协处理器处理指令
下一篇:ARM处理机模式--内部寄存器

推荐阅读最新更新时间:2024-03-16 15:29

ARM指令集----寻址方式
ARM指令集可以分为跳转指令,数据处理指令,程序状态寄存器传输指令,LOAD/Store指令,协处理器指令和异常中断产生指令6类 ARM指令集的寻址方式   数据处理指令的操作数的寻址方式   字以及无符号字节的Load、Store指令的寻址方式   杂类Laod、Store指令的寻址方式   批量Load、Store指令的寻址方式   协处理器Load、Store指令的寻址方式 数据处理指令的操作数的寻址方式   立即数荀子,每个立即数有由一个8位的参数循环右移 偶数位得到,其中循环移位的位数由一个4位二进制的两倍表示 指令编码格式: 常见的:   MOV R0,#0xFC0 令
[单片机]
51单片机直接寻址方式与编程举例
直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。 例如:MOV A,30H 这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。 在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体的说就是: 1、内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。 我们知道低128单元的地址是00H-7FH。在指令中直接以单元地址形式给出这句话的意思就是这0-127共128位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形
[单片机]
ARM指令集----杂项指令
ARM指令集可以分为6类,即是跳转指令,数据处理指令,程序状态传输指令,Load、Store指令,协处理器指令和异常中断指令 跳转指令: 在ARM中有两种方式可以实现程序的跳转,一种是跳转指令,另一种是直接向PC寄存器写入目标地址的值 通过直接向PC寄存器写入目标寄存器的数字可以实现在4GB 地址空间的任意跳转,这种跳转又称为长跳转,如果在残肢令前面使用MOV LR,PC等指令,可以保存返回来的地址值,这样就实现了在4GB空间中的子程序调用 ARM的跳转指令可以从当前指令向前或者是向后的32位的地址进行空间跳转,这类跳转指令有一下4种 B 跳转指令 BL带换回的跳转指令 BLX 带返回的跳转和切换指令 BX 带状态切换的跳
[单片机]
ARM的寻址方式
目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。 立即数寻址:操作数直接就在指令中给出 寄存器寻址:操作数放在寄存器中 寄存器间接寻址:寄存器中的数是存放操作数的地址
[单片机]
ARM指令集-协处理器指令
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。 ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和 存储器 之间传送数据。 ARM 协处理器指令包括以下 5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送
[单片机]
七种寻址方式(相对基址加变址寻址方式)
操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则其缺省的段寄存器为SS;否则,其缺省的段寄存器为DS。 指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。 例:假设指令:MOV AX, ,在执行时,(DS)=1000H,(BX)=2100H,(SI)=0010H,内存单元12310H的内容为1234H。问该指令执行后,AX的值是什么? 解:根据相对基址加
[单片机]
七种<font color='red'>寻址</font><font color='red'>方式</font>(相对基址加变址<font color='red'>寻址</font><font color='red'>方式</font>)
ARM指令集及混合编程
一、ARM指令集 1、跳转指令:B、BL(带返回)、BLX、BX(带状态) 2、数据传送:MOV(通用寄存区)、MVN(按位取反)、CMP(比较结果存在CPSR)、TST(按位置位)、ADD、SUB、AND、ORR、BIC、MUL、 3、访问状态寄存器:MSR、MRS 二、汇编指令集 1、LDR、STR(B) 2、STR、 3、LDM、STM (批处理) 4、swp 5、LSL、ROR 6、SWI、BKPT 三、伪指令 1、GBLA、GBLL、GBLS、LCLA、LCLL、LCLS 、SETA、SETL、SETS、 2、RLIST 3、DCB (分配存储单元) 4、SPA
[单片机]
单片机的指令系统和寻址方式介绍
1、MOVA,#20H 这条指令表示把20H这个数送入累加器A中(一个特殊功能寄存器)。 2、ADDA,70H 这条指令表示把累加器A中的内容(在上例中送入的#20H)和存贮器中地址为70H单元中的内容(也是一个数字),通过算术逻辑单元(英文缩写为ALU)相加,并将结果保留在A中。这里MOV、ADD等称为操作码,而A、#20H、70H等均称为操作数。在汇编语言程序中,操作码通常由英文单词缩写而成,这样有助于记忆,所以又称助记符。如MOV就是英文单词MOVE的缩写,含有搬移的意思;而ADD即为英文单词,其意为相加。因此,对于略懂英语的用户,掌握单片机指令的含意是较为方便的。操作数有多种表示法,如以上的#20H称为立即数,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • Linux内核移植
    实验步骤:(1)准备工作(2)修改顶层Makefile(3)修改falsh 分区(4)配置编译内核下面以Linux2 6 30 4内核移植到gec2440为例:一、准备 ...
  • S5PV210 PWM定时器
    第一节 S5PV210的PWM定时器S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。PWM定时器使用PCLK_PS ...
  • S5PV210 NAND Flash
    NAND Flash关于NAND FlashS5PV210的NAND Flash控制器有如下特点:1) 支持512byte,2k,4k,8k的页大小2) 通过各种软件模式来进行NAND Fl ...
  • S5PV210串口
    串口设置之输入输出字符S5PV210 UART相关说明 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来 ...
  • S5PV210按键控制LED
    原理图如图所示:查询用户手册得到:程序例子:(完整代码见“代码下载链接”)1、轮询的方式查询按键事件 *main c* 核心代码如下:while(1 ...
  • S5PV210控制蜂鸣器
  • S5PV210的启动过程
  • S5PV210点亮LED
  • S5PV210启动过程详解
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved