ARM·指令集

发布者:那是一条路都最新更新时间:2015-11-17 来源: eefocus关键字:ARM  指令集 手机看文章 扫描二维码
随时随地手机看文章
【本章内容】
 
【ARM·指令集】
【跳转指令】
 
【ARM·指令集】
 
1)B WAITA 跳到WAITA编号处 ;
     B 0x1234 跳到0x1234地址处 ;
 
(一般用于子程序没有返回的时候)
 
2)BL  label (LR=PC-4,PC=label)
 
【ARM·指令集】
 
【数据处理指令】
 
1)数据传送指令
 
【ARM·指令集】
 
MOV R11,#0xF000000B
MOV R0, R1
MOVS R3,R1,LSL #2
MOV PC, LR
 
2)算数运算指令
 
【ARM·指令集】
 
ADDS R1,R1,#1020
ADD        R1,R1,R2, LSL  #2
 
SUBS R0, R0 ,#240
SUBS R2, R1, R2
 
3) 逻辑运算指令
 
【ARM·指令集】
 
4)比较指令
 
【ARM·指令集】
 
【乘法与乘加指令】
【ARM·指令集】
 
MUL指令将Rm和Rs中的值相乘,结果的低32位保存到Rd中,Rd,Rm,Rs不能为15。只影响到CPSR的N位和Z位,不影响V,C位不确定
 
【PSR访问指令】
 
在ARM处理器中,只有MRS指令才能访问到程序状态寄存器
 
MRS  R1,CPSR
MRS R2,SPSR
MSR CPSR,R1
 
【ARM·指令集】
 
psr:CPSR或SPSR
 
应用实例:
ENABLE_IRQ
MRS R0, CPSR
BIC R0, R0,#0x80
MSR CPSR_c,R0
MOV PC ,LR
 
【加载/存储指令】
ARM处理器是典型的RISC处理器,对于存储器的访问只能使用加载和存储指令实现。ARM9处理是冯诺依曼结构,RAM存储空间及I/O映射空间统一编址,除了对RAM操作以外,对外围IO,程序数据的访问都要通过加载/存储指令进行。[page]
(冯诺依曼结构就是程序存储指令存储器和数据存储器结合在一起的结构)
(RISC和CISC相对,reduced 和 complex)
 
1)单寄存器加载
【ARM·指令集】
 
【ARM·指令集】
 
LDR/STR指令用于对内存变量的访问、内存缓冲区数据的访问、查表、外表部件的控制操作等。
若使用LDR指令加载数据到PC寄存器,则实现程序跳转功能 。
 
*LDR和STR——字和无符号字节加载/存储指令
 
LDR/STR指令寻址非常灵活,它由两部分组成,其中一部分为一个基址寄存器,可以为人一个通过寄存器;另一个部分为地址偏移寄存器。
①立即数 LDR   R1, [R0,#12] R1<-[R0+0x12]
②寄存器 LDR   R1, [R0, R2] R1<-[R0+R2]
③寄存器及移位常数 LDR   R1, [R0,R2,LSL#2]; R1<-[R0+R2*4]
*LDR/STR——半字和有符号字节加载/存储指令
【ARM·指令集】
 
2)批量数据加载/存储指令
【ARM·指令集】
 
*cond:执行的条件
*模式:控制地址的增长方式,一共8种模式

*!:表示在操作结束后,将最后的地址写回Rn中
reglist:表示寄存器列表,可以包含多个寄存器{R1,R2,R4-R9}
^:允许在用户模式或系统模式下使用
【ARM·指令集】
 
例子。
【ARM·指令集】
 
【堆栈操作】
*堆栈指针(SP)总是指向栈顶
递增堆栈:向高地址方向生长
递减堆栈:向低地址方向生长
满堆栈:堆栈指针向最后压入堆栈的有效数据项
空堆栈:堆栈指针指针向下一个要放入数据的空位置
 
【ARM·指令集】
 
 
【关于最后的疑问:LDR/STR LDM/STM为什么加载的方式相反,是不是这课写错了】
 
 
【数据交换指令】
 
【ARM·指令集】
 
【异常产生指令】
 
【ARM·指令集】
 
SWI 0 调用0中断
SWI 12 调用12中断
关键字:ARM  指令集 引用地址:ARM·指令集

上一篇:ARM·嵌入式系统的概述
下一篇:ARM·移位指令

推荐阅读最新更新时间:2024-03-16 14:39

ARM7的畜牧养殖智能消毒机器人控制系统设计
1 总体方案设计 畜牧养殖智能消毒机器人控制系统由机器人智能控制模块、监视模块、及无线网络通讯模块等三大部分组成。工作过程是通过接入互联网的手机或者微型计算机客户端通过无线网络向远程的机器人发送控制指令代码,期间传输信号由发送端使用加密狗加密。当信号经互联网发送到接收终端时,智能消毒机器人网络模块把接收的指令传送到处理器,处理器指示驱动模块驱动智能消毒机器人执行动作。运动的同时监视模块把采集到的图像通过无线互联网传输到客户机端,其整体结构如图1所示。 1.1 智能控制模块 此模块是智能消毒机器人的核心部分。采用的是嵌入式系统设计,可以准确高效地运行及处理数据。控制器通过网络组件WIFI或者GPRS与外部网络进行数据
[单片机]
于<font color='red'>ARM</font>7的畜牧养殖智能消毒机器人控制系统设计
ARMLinux s3c2440 之UART分析一
在分析ARM-Linux s3c2440中UART的时有必要先了解 s3c2440A中串口的硬件知识。也就是本文---- 硬件篇: S3c2440A串口提供三个独立的异步串行通信I/O端口(asynchronousserial I/O ports)。每一个串口均可以以普通中断方式或者DMA方式进行数据收发,采用系统时钟时,最大速率为115.2kbps.如果采用外部时钟(UEXTCLK),UART速度可以更快。每个串口包含有2个64-byte的FIFO缓存区用来发送或传输数据。 S3c2440A 串口具有可编程波特率,红外(IR)收发数据,1或者2 位的停止位(stop),5/6/7/8 位数据宽度和奇偶校验功能(parity c
[单片机]
ARMLinux s3c2440 之UART分析一
ARM反汇编学习
在bin文件中,就是一条条的机器指令,每条指令4个字节。 在ADS中打开一个.s文件,选择project- disassemble 可以看到汇编的机器码 汇编代码如下(ADS中的一个例程ARMADSv1_2Examplesasmarmex.s): AREA ARMex, CODE, READONLY ; name this block of code ENTRY ; mark first instruction ; to execute start MOV r0, #10 ; Set up parameters MOV r1, #3 ADD r0, r0, r1 ; r0 = r0 + r1 stop MOV r0, #0x1
[单片机]
<font color='red'>ARM</font>反汇编学习
全志科技选择ARM Cortex CPU和Mali GPU技术
2011年4月13日,中国上海——ARM公司今天宣布:全志科技(AllWinner Technology)授权获得了ARM® Cortex™-A8处理器和 Mali™-400 MP图形处理单元(GPU),致力以超低功耗将高性能处理器和超高清带入一系列广泛的基于Android™操作系统的互联消费电子产品,包括从平板电脑到汽车多媒体系统等。 受到消费者对于拥有完美的用户体验和更长的电池使用寿命的需求驱动,全志科技选择ARM CPU和GPU产品组合,为一系列产品带来优化的片上系统解决方案,包括平板电脑、智能电视机、网络媒体播放器、网络电子书、智能多媒体机顶盒、IP照相机和汽车多媒体解决方案。 Cortex-A8 处理器已
[嵌入式]
汽车MCU缺货与保供 芯旺微如何布局车规级MCU
汽车MCU大缺货引发了一个思考,如何保证国产汽车芯片供应链的自主可控。特别是随着汽车向电子化和智能化方向发展,车用MCU作为汽车电子系统内部运算和处理的核心,遍布悬挂、气囊、门控和音响等几十种次系统中,地位愈发重要。以往,该市场多由恩智浦、瑞萨电子、Microchip、英飞凌、ST等国外厂商所占据,国内厂商份额寥寥。 不过,这种局面正在发生改变,国内车用MCU在逐步崛起。其中,就包括芯旺微电子,其凭借十余年的车规芯片研发设计和市场交付经验,已经成功打开了国产MCU上车之门。在2021上海慕尼黑电子展现场,芯旺微电子展台人气爆棚,火爆程度可见一斑。 自主内核 长期以来,MCU领域的国内多数厂商均采用ARM授权的内
[汽车电子]
汽车MCU缺货与保供 芯旺微如何布局车规级MCU
LPC2100系列ARM7微控制器加密ARM芯片
1. 加密原理说明 LPC2100系列ARM7微控制器是世界首款可加密的ARM芯片,对其加密的方法是通过用户程序在指定地址上设置规定的数据。PHILIPS公司规定,对于LPC2100芯片(除LPC2106/2105/2104外),当片内FLASH地址0x000001FC处的数据为0x87654321时,芯片即被加密。在加密设置后,JTAG调试接口无效,ISP功能只提供读ID及全片擦除功能。注意:将带有加密设置的程序下载到芯片内部FLASH,在下一次系统复位后加密生效。 2. 加密程序实现 为了实现加密设置,用户必须保证在0x000001FC处定义数据0x87654321。我们先来分析一下带有加密设置的程序结构,如图
[单片机]
ARM programmer’s Model 学习
ARM中支持字节、半字、字三种数据类型。(V4版本以上,现在的手机芯片低端的基本都是V5版本ARM9) 能表达的数值有2^32个数值。对于有符号数据值在负半轴上有数值,对于无符号数据只在0的右侧有值。具体 范围如下描述 所以数据操作都是一字为单位进行计算。 对于ARM中unbanked 寄存器和banked寄存器的理解: R0 R15是一个虚拟的符号。存在真实的物理寄存器,在不同工作模式下R0 R7对应的(refer to) 物理寄存器是一样的,而banked寄存器在工作模式不同的情况下,对应不同的物理寄存器。
[单片机]
<font color='red'>ARM</font> programmer’s Model 学习
基于ARM的嵌入式TCP/IP协议的实现
摘要:介绍嵌入式TCP/IP协议在低速处理器中的一种简化实现方案,并成功应用于某分布式监控系统中。 关键词:TCP/IP协议 嵌入式 ARM 在网络应用日益普遍的今天,越来越多的嵌入式设备实现Internet网络化。TCP/IP协议是一种目前被广泛采用的网络协议。嵌入式Internet的技术核心是在嵌入式系统中部分或完整地实现TCP/IP协议。由于TCP/IP协议比较复杂,而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,有必要将TCP/IP协议简化。 图1 协议处理 1 TCP/IP协议的实现 嵌入式TCP/IP协议一般实现:ARP/RARP、IP、ICMP、TCP、UDP、HTTP、SMTP、FTP、TELNE
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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