Thumb指令集
 
       Thumb指令可以看做是ARM指令压缩形式的子集,是针对代码密度【1】的问题而提出的,它具有16为的代码密度。Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而不支持ARM指令集。因此,Thumb指令只需要支持通用功能,必要时,可借助完善的ARM指令集,例如:所有异常自动进入ARM状态。
       在编写Thumb指令时,先要使用伪指令CODE16声明,而且在ARM指令中要使用BX指令跳转到Thumb指令,以切换处理器状态。编写ARM指令时,可使用伪指令CODE32声明。
 
【1】.代码密度:单位存储空间中包含的指令的个数。例如
              ARM指令是32位的,而Thumb指令时16位的,如果在1K的存储空间中,可以放32条ARM指令,就可以放64条Thumb指令,因此在存放Thunb指令时,代码密度高。
 
 
 
Thumb指令集与ARM指令集的区别
 
       Thumb指令集没有协处理器指令、信号量指令以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且指令的第二操作数受到限制;除了跳转指令B有条件执行功能外,其他指令均为无条件执行;大多数Thumb数据处理指令采用2地址格式。Thumb指令集与ARM指令集的区别一般有如下几点:
Ø         跳转指令
程序相对转移,特别是条件跳转与ARM代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移。
Ø         数据处理指令
数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第三个寄存器中。
数据处理操作比ARM状态的更少,访问寄存器R8—R15受到一定限制。
(除MOV和ADD指令访问寄存器R8—R15外,其他数据处理指令总是更新CPSR中ALU状态标志)
访问寄存器R8—R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志
Ø         单寄存器加载和存储指令
在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0—R7
Ø         批量寄存器加载和存储指令
LDM和STM指令可以将任何范围为R0——R7的寄存器子集加载或存储

转载于:https://www.cnblogs.com/meiwubiao/p/7216222.html

Thumb指令集与ARM指令集的区别相关推荐

  1. ARM指令集与Thumb指令集--区别关联--汇编指令 BX LR ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式

    BX        LR    ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式 A 一.现在先区分下ARM指令集与Thumb指令集        Thumb 指令可以看作是 ARM 指 ...

  2. ARM 指令集 VS Thumb 指令集

    Thumb指令集 Thumb指令可以看做是ARM指令压缩形式的子集,是针对代码密度[1]的问题而提出的,它具有16为的代码密度.Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而 ...

  3. ARM 指令集 和 Thumb 指令集

    From:https://gitee.com/lsliushuang/ASM/blob/master/arm汇编.txt ARM 汇编指令集汇总:https://blog.csdn.net/qq_40 ...

  4. ARM指令集 VS Thumb指令集

    1 thumb指令集概述 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集. Thumb指令集是ARM指令集的一个子集 ...

  5. Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)

    架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...

  6. 简单ARM指令集介绍

    1.ARM指令集简介 ARM指令集是基于精简指令集计算机(RISC)设计的,其指令集的译码机制相对比较简单,ARMv7-A具有32bit的ARM指令集和16/32bit的Thumb/Thumb-2指令 ...

  7. 嵌入式:ARM指令集分类及编码

    ARM指令集是32位的,程序的启动都是从ARM指令集开始.主要是以下三个方面: 指令分类及指令格式 条件执行 指令集编码 指令分类及指令格式 ARM指令使用的基本格式如下: 〈opcode〉{〈con ...

  8. ARM指令集、Thumb指令集、Thumb-2指令集

    Thumb‐2是一个突破性的指令集.它强大,它易用,它轻佻,它高效.Thumb‐2是16位Thumb指令集的一个超集,在Thumb‐2中,16位指令首次与32位指令并存,结果在Thumb状态下可以做的 ...

  9. 基于ARM Cortex-M3微控制器(STM32系列)基础知识(三)——ARM指令集

    指令概述 ARM指令 STR与LDR概述(详细在本文的数据加载与存储指令中) 数据操作指令 数据操作指令是指对存放在寄存器中的数据进行操作的指令.主要包括数据传送指令.算术指令.逻辑指令.比较与测试指 ...

  10. x86指令集和arm指令集部分对比

    本文主题:本文主要对比了x86 ISA 和 arm ISA的部分区别. 目录 一.x86 ISA 1.指令组成 二.指令各部分解析 1.Instruction Prefixes(可选部分) 2.Opc ...

最新文章

  1. java多线程-死锁的一些问题
  2. Python爬虫入门教程 21-100 网易云课堂课程数据抓取
  3. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序
  4. Javascript typeof用法
  5. idea在目录中前添加目录_[LaTeX Beamer] 为目录项添加页码
  6. nano编辑器使用教程
  7. 代码演示:获取锁时被中断
  8. 微信支付四大支付模式分别有哪些区别?
  9. openGL es实现小实例
  10. Filter过滤器实现同一地址手机和电脑页面不同
  11. ❤️Spring的声明式事务
  12. MySQL引擎详解(二)——MyISAM引擎特性
  13. 正则只能输入数字java_正则表达式限制输入字符,数字,汉字等
  14. JAVA在线购物B2C商城源码
  15. 《App违法违规收集使用个人信息自评估指南》
  16. Ubuntu20.04 libcef笔记
  17. 电脑没有声音,显示“未插入耳机或扬声器”,检测不到Realtek高清晰音频管理器...
  18. 华为云centOS8部署
  19. python画结构图_【实战案例】五分钟!用python绘制系统架构图
  20. 杭州卧兔:全球品牌出海峰会大咖集聚讲述品牌出海关键要素

热门文章

  1. 服务器系统打不上网卡驱动,服务器网卡驱动程序不能正确加载
  2. Windows 7 安装主题包,双击没反应的临时解决方法
  3. matlab第四章答案,matlab第四章课后
  4. 360卸载方法(最全面)
  5. php删除与销毁session
  6. 6、python基础:文件输入输出详解
  7. 【进大厂必学】3W字180张图学习Linux基础总结
  8. 《统计学》基础知识归纳
  9. 锋利jquery 网络版
  10. WPE系统NTPWEdit工具无法打开SAM,显示只读文件怎么修改?