系统学习ARM之二 --ARM指令集

发布者:名字太长了吗最新更新时间:2018-05-06 来源: eefocus关键字:系统学习  ARM  ARM指令集 手机看文章 扫描二维码
随时随地手机看文章

一、简介:

定义:

    ARM 指令集:ARM处理器能够运行的命令的集合。

特点:

  1. 所有ARM指令均为32-bits长

  2. 大部分为单周期指令       1T

  3. 所有指令都可以条件执行

  4. 采用 Load/Store 架构  --- load/store指令

          mov r1,100   @ r1 =*(100)  把内存地址为100的单元格里的内容赋值给r1,ARM指令 不支持

          mov r1,#100  @ r1=100

二、数据处理指令:

1. 指令:

  •     算术指令: ADD ADC SUB SBC RSB RSC

  •     逻辑指令: AND ORR EOR BIC

  •     比较指令: CMP CMN TST TEQ

  •     数据搬移: MOV MVN

        加法指令            ADD R1,R2,R3        R1 = R2 + R3

        带进位加法        ADC R1,R2,R3        R1 = R2 + R3 + C

        减法指令            SUB R1,R2,R3        R1 = R2 - R3

        逆向减法            RSB R1,R2,R3        R1 = R3 - R2

        带借位减法        SBC R1,R2,R3        R1 = R2 - R3 - !C

        带借位逆减法   SBC R1,R2,R3         R1 = R3 - R2 - !C

        逻辑与指令       AND R0,R0,#0X0F        &

        逻辑或指令       ORR R0,R0,#0X0F        |

        逻辑异或           AND R0,R0,#0X0F        ^

        位清除               BIC R0,R0,#9          R0 = R0 & (~#9)

        比较指令           CMP R1,#10               cpsr = R1 - 10

        反值比较指令   CMN R1,R2                cpsr = R1 + R2

        位测试指令      TST R1,#3                    cpsr = R1 & 3

        相等测试          TEQ R1,R2                  cpsr = R1 ^ R2

        数据传输          MOV R1,R2                 R1 = R2

        数据取反传输  MVNR1,R2                  R1 = R2

        

2. 条件码:判断指令是否执行的依据

  •       EQ   相等

  •       NE   不相等

  •       GE   大于等于

  •       LE   小于等于

  •       GT   大于

  •       LT   小于

3. 指令如何执行 :

  1. 指令后面没有条件码: 执行

  2. 指令后面有条件码  :

  首先判断条件码是否成立,CPSR条件位和条件码标志

                成立    -- 指令执行

                不成立 --- 指令不执行

       

         cmp   r1,#3   @ r1- 3 ,结果影响了CPSR的条件位  结果为0,Z=1  结果不为0,Z=0

       addeq  r2 ,r1,r1       z=1,eq条件码成立; z=0,eq条件码不成立

4. 条件位的影响:

     1-- 默认所有的指令,不会影响CPSR寄存器的条件位nzcv

         除了比较指令: 比较指令:CMP CMN TST TEQ

     1-- 通过指令后面加S,指令的执行就肯定会影响nzcv位

例子:

    if (a==4 || a==10) --> cmp r4,#4

                   x=0;              cmpne r4,#10

                                        moveq r5,#0

四、跳转指令:

        Branch : B{} label

        Branch with Link : BL{} subroutine_label

相对跳转:

        pc'= pc +偏移量

跳转范围:

        ± 32 Mbyte

五、交换指令 :

(1)指令功能:在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。

            (原子操作表示,在操作的时候不能被别的程序打断)

        一条指令完成了内存单元和寄存器的数据交换

       swp(字交换):相当于

             temp   = *(Rn)

             *(Rn)= Rm

            Rd     = temp

                是32位的操作

       swpb(字节交换):也同上边,只是操作的是8位的数据

            将内存中的一个字节单元和一个指定寄存器的低8位相交换。

(2)信号量操作

(3)注意:

         不能通过写c语言程序实现该指令

         只能通过手写汇编

六、软中断指令 :

(1)指令功能:引起异常,系统调用

(2)指令格式:

 SWI{}

七、PSR 传送指令 :

(1)指令功能:CPSR寄存器不允许数据处理指令直接操作,只能由PSR寄存器操作

(2)指令格式:

      MRS{} Rd,cpsr                      @ Rd   = cpsr

      MSR{} ,Rm   @ cpsr = Rm

八、协处理器指令 :

协处理器寄存器传送指令

   MRC:从协处理器寄存器移到ARM 寄存器

   MCR:从 ARM 寄存器移到协处理器寄存器


关键字:系统学习  ARM  ARM指令集 引用地址:系统学习ARM之二 --ARM指令集

上一篇:系统学习ARM之三 --load/store指令--装载和存储指令
下一篇:系统学习ARM之一 --ARM简介

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

arm linux 从入口到start_kernel 代码分析 - 4
3. 创建页表 通过前面的两步,我们已经确定了processor type 和 machine type. 此时,一些特定寄存器的值如下所示: r8 = machine info (struct machine_desc的基地址) r9 = cpu id (通过cp15协处理器获得的cpu id) r10 = procinfo (struct proc_info_list的基地址) 创建页表是通过函数 __create_page_tables 来实现的. 这里,我们使用的是arm的L1主页表,L1主页表也称为段页表(section page table) L1 主页表将4 GB
[单片机]
倍赛达让客户使基于Arm定制ASIC更加易于实现
BaySand, Inc. (倍赛达) 宣布:公司现在可提供采用Arm® Cortex®-M0和Cortex-M3处理器定制系统级芯片(SoC)的设计服务,并可通过Arm DesignStart ™ 计划 而无需预先支付处理器授权费用 。 原始设备制造商(Original Equipment Manufacturers)正越来越多地采用定制的系统级芯片(SoC,System-on-Chip),以创造更加小巧、更低成本、更低功耗和更具差异化的产品。BaySand (倍赛达) 提供基于DesignStart计划所包含处理器之设计服务,把进入门槛极大地降低,并使这些厂商能够从采用业界标准处理器以定制SoC中获益,而
[半导体设计/制造]
ARM预计下半年芯片销量低迷暂停招聘
    香港时间9月4日消息,ARM CEO沃伦‧伊斯特(Warren East)近日表示,由于今年下半年芯片销量可能放缓,ARM已暂停部分招聘计划。   ARM芯片设计被用于 Apple iPhone等诸多流动产品中。ARM预计,今年下半年的芯片销量不会向往年一样大幅增长。今年上半年,ARM许多客户的芯片销量都相对低迷。   通常,每年第三季度和第四季度的芯片销量最为强劲,因为许多消费者选择在圣诞节假期期间购买平板电脑和智能手机。今年也不例外,许多新产品都将在下个月发布,其中包括 Samsung Galaxy Note平板电脑和 Apple iPhone 5等。   但伊斯特指出,许多业内人士认为,由于经济低迷推迟了消费者购买数码
[手机便携]
ARM物联网事业部策略副总裁:mbed平台催化物联网发展
安谋国际(ARM)mbed平台再添新开发资源。继支援无线区域网路(Wi-Fi)、蓝牙(Bluetooth)、全球卫星定位系统(GPS)等无线通讯技术之后,安谋国际针对物联网(IoT)发布的开发平台mbed将再增加ZigBee网际网路通讯协定(IP),助力系统开发商弹性于装置中配备更多无线技术,以提高产品的附加价值。 安谋国际物联网事业部策略副总裁Kerry McGuire表示,尽管ZigBee为发展物联网的重要无线通讯技术,然目前市场规模较Wi-Fi与蓝牙受限,因此初期mbed平台并未优先加入。 安谋国际物联网事业部策略副总裁Kerry McGuire表示,随着mbed平台支援更多无线通讯技术,将可提供客户更多产
[物联网]
日经:Arm中国换帅风波有伏笔
近日,英国设计公司Arm及其子公司Arm中国的换帅风波在行业引起了震荡。 《日经亚洲评论》认为,双方争议的种子可以说在两年前已播下。当时Arm是世界上许多移动设备背后的全球领先知识产权提供商,其大胆地押注了出售该部门多数股权的赌注。 上周三以来,自2016年开始一直由日本软银集团拥有的Arm和Arm中国在任命中国分公司董事长兼首席执行官的事情上发生了激烈的冲突。Arm坚持认为,由于“举报人的证据表明存在违规行为和利益冲突,该公司已罢免了首席执行官Allen Wu。” 但是,Arm中国辩称,这一决定是非法的。也就是说,Arm中国认为其母公司指派来监督中国子公司的其中一位高管实际上已经在几周前被撤职。 在中美关系日益紧张的局势之下,这
[手机便携]
英伟达400亿美元收购ARM交易要黄?
据报道,知情人士称,由于欧洲监管机构不愿在夏季假期前考虑此案,英伟达很可能无法在2022年3月预设的最后期限之前完成对英国芯片设计公司ARM的400亿美元收购。    英伟达去年宣布了收购ARM的交易,立即在半导体行业引发了轩然大波。长期以来,ARM在半导体行业一直是中立参与者,向多家芯片公司提供关键的知识产权授权,其客户包括高通、三星和苹果等。    这笔交易需要获得美国、欧洲和中国的监管批准,预计所有监管机构都将密切审查这笔交易。英伟达去年对投资者表示,计划在2022年3月前完成交易,但收购协议允许两家公司将最后期限延长至2022年9月。到2022年9月,如果交易未能获得政府批准,任何一方都可以选择退出。    英伟达尚未向欧
[半导体设计/制造]
opencv2.4.6.1+ffmpeg移植arm6410
上一次移植好的opencv没有ffmpeg,导致无法处理视频,经过几天的调试,总算弄好了。 1.检测你的opencv是否已经包含ffmpeg。这个很简单,用ldd命令查看可执行程序用了哪些动态库就知道了。如果没有检测到与ffmpeg相关的库,那说明opencv没配置完全,下面是详细配置过程。 2.交叉编译ffmpeg时先得交叉编译x264和xvid 2.1交叉编译xvid 到 http://packman.links2linux.de/package/xvidcore 下载xvid,我的下载版本为xvidcore-1.3.2 解压,cd进入xvid下的build/generic目录,执行以下命令: ./configure
[单片机]
opencv2.4.6.1+ffmpeg移植<font color='red'>arm</font>6410
ARM发布首款可即量产的基于TSMC90纳米工艺的DDR1和DDR2存储器接口IP
Velocity DDR 存储器接口获得 TSMC IP 质量认证 ARM 公司(伦敦证交所: ARM ;纳斯达克: ARMHY )今天发布了其 Artisan 物理 IP 系列中的 ARM Velocity TM DDR1 和 DDR2 ( 1/2 )存储器接口,支持 TSMC 的 90 纳米通用工艺。 ARM Velocity DDR1/2 存储器接口是第一个通过 TSMC IP 质量安全测试的 90 纳米、可即量产的 IP 。   TSMC 设计服务市场代理总监 Kuo Wu 表示:“我们一贯致
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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