关于对ARM处理器中“8位位图”的理解

发布者:翩翩轻舞最新更新时间:2015-05-05 来源: 51hei关键字:ARM处理器  8位位图 手机看文章 扫描二维码
随时随地手机看文章
在ARM处理器的汇编语言中,对指令语法格式中的的常数表达式有这样的规定:“该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。”对于这句话,我一开始学ARM时不理解,到了后来为了做设计,去看BootLoader源码时,才认真地在网上查找相关资料,理解了这句话。
  
   首先从ARM指令系统的语法格式说起。
   一条典型的ARM指令语法格式分为如下几个部分: 
   {}{S} ,{,}
   其中,<>内的项是必须的,{}内的项是可选的,如是指令助记符,是必须的,而{}为指令执行条件,是可选的,如果不写则使用默认条件AL(无条件执行)。
   opcode      指令助记符,如LDR,STR 等
   cond        执行条件,如EQ,NE 等
   S           是否影响CPSR 寄存器的值,书写时影响CPSR,否则不影响
   Rd          目标寄存器
   Rn          第一个操作数的寄存器
   shifter_operand    第二个操作数
 
  其指令编码格式如下:
 
 31-28  27-25  24-21  20    19-16  15-12  11-0 (12位)
 cond  001  opcode  S  Rn  Rd  shifter_operand
 

当第2 个操作数的形式为:#immed_8r常数表达式时“该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。”

其意思是这样:#immed_8r在芯片处理时表示一个32位数,但是它是由一个8位数(比如:01011010,即0x5A)通过循环移位偶数位得到(1000 0000 0000 0000 0000 0000 0001 0110,就是0x5A通过循环右移2位(偶数位)的到的)。

      而1010 0000 0000 0000 0000 0000 0001 0110,就不符合这样的规定,编译时一定出错。因为你可能通过将1011 0101循环右移位得到它,但是不可能通过循环移位偶数位得到。

      1011 0000 0000 0000 0000 0000 0001 0110,也不符合这样的规定,很明显:1 0110 1011有9位。

为什么要有这样的规定?

本人的理解是:

    要从指令编码格式来解释(这就是我为什么一开始讲的是指令编码格式),仔细看表格中的shifter_operand所占的位数:12位。要用一个12位的编码来表示任意的32位数是绝对不可能的(12位数有2^12种可能,而32位数有2^32种)。

    但是又要用12位的编码来表示32位数,怎么办?

    只有在表示数的数量上做限制。通过编码来实现用12位的编码来表示32位数。

    在12位的shifter_operand中:8位存数据,4位存移位的次数。

    8位存数据:解释了“该常数必须对应8位位图”。

     4位存移位的次数:解释了为什么只能移偶数位。4位只有16种可能值,而32位数可以循环移位32次(32种可能),那就只好限制:只能移偶数位(两位两位地移,好像一个16位数在移位,16种移位可能)。这样就解决了能表示的情况是实际情况一半的矛盾。

    所以对#immed_8r常数表达式的限制是解决指令编码的第二个操作数位数不足以表示32位操作数的无奈之举,但在我看来:这个可以说是聪明的做法。因为如果直接用12位数来表示32位操作数,只能表示0 到(2^12-1)。大于(2^12-1)的数就没办法表示了。而且细细想来“8位存数据,4位存移位的次数”,应该是最好的组合了(我并未想过所有的组合,只是顺便试了几个)。

以上是本人对ARM处理器中“8位位图”的个人理解,如有异议,欢迎批评指正!!!!!!

关键字:ARM处理器  8位位图 引用地址:关于对ARM处理器中“8位位图”的理解

上一篇:ARM的异常处理过程分析
下一篇:S3C2440中断代码的深层次分析

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

ARM处理器的运行模式和ARM寄存器
一、ARM处理器共有7种运行模式 处理器模式 描述 用户模式(User,usr) 正常程序执行的模式 快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ,irq) 用于通常的中断处理 特权模式(Supervisor,sve) 供操作系统使用的一种保护模式 数据访问中止模式(Abort,abt) 用于虚拟存储及存储保护 未定义指令中止模式(Undefined,und) 用于支持通过软件仿真硬件的协处理器 系统模式(System,sys) 用于运行特权级的操作系统任务 usr是普通模式,其他六种是特权模式(Privileged Modes),在这些模式下,程序可以访问所有的系统资源,
[单片机]
<font color='red'>ARM处理器</font>的运行模式和ARM寄存器
ARM处理器7种工作模式介绍
ARM微处理器支持7种运行模式,分别如下: 用户模式(usr):ARM处理器正常的程序执行状态。 快速中断模式(fiq):用于高速数据传输或通道处理。 外部中断模式(irq):用于通用的中断处理。 管理模式(svc):操作系统使用的保护模式。 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式(sys):运行具有特权的操作系统任务。 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
[单片机]
ARM处理器的嵌入式新浪微博客户端设计
引言 随着物联网技术的迅速发展,许多嵌入式系统具备了联网功能,为方便系统开发者集中监控和管理远程嵌入式系统,同时方便其他PC网上用户或智能手机App能够获取嵌入式系统数据,实现远程读数与控制 ,本文提出了以STM32F103RC处理器为核心,结合WIZnet公司的W5500以太网接口芯片,利用新浪微博的二次开发接口 ,设计了嵌入式新浪微博客户端,从而实现社交网络与嵌入式硬件系统的互动,可以把人与人的关系拓展到人与物的关系、物与物的关系。本系统结构如图1所示。 1 系统主要硬件介绍 1.1 STM32F103RC微控制器 STM32F103RC是基于CortexM3内核的32位ARM处理器芯片,其工作频率可达7
[单片机]
<font color='red'>ARM处理器</font>的嵌入式新浪微博客户端设计
32位ARM处理器的几种工作模式和工作状态
ARM处理器工作模式一共有 7 种 : USR模式 正常用户模式,程序正常执行模式 FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理 IRQ模式 处理普通中断 SVC模式(Supervisor) 操作系统保护模式,处理软件中断swi reset ABT中止(Abort mode){数据、指令} 处理存储器故障、实现虚拟存储器和存储器保护 UND未定义(Undefined) 处理未定义的指令陷阱,支持硬件协处理器的软件仿真 SYS系统模式(基本上=USR)(System) 运行特权操作系统任务 用户模式和特权模式 除了用户模式之外的其他6种处理器模式称为特权模式 特权模式下
[单片机]
32位<font color='red'>ARM处理器</font>的几种工作模式和工作状态
基于ARM处理器的CAN-Ethernet通信模块实现
夏继强 袁骏等 测控技术 近20 年来工业测控系统发展的趋势是:分散控制和集中管理、标准化和开放性。工业测控系统从传统的集中测量控制系统转向网络化的集散控制系统。随着现场总线技术高速发展和标准化程度不断提高,以现场总线技术为基础的开放型集散测控系统—现场总线测控系统得到了广泛的应用。同时,以太网的应用也迅速向工业测控系统渗透,在工业自动化应用中异军突起。 这种趋势的出现与计算机技术、信息技术、网络通信技术的高速发展相关。现代工业系统信息交换的需求也已经从管理层内部迅速覆盖到控制、现场设备等各个层次,连接上层网络和现场总线的通信设备成为工厂自动化系统中的关键设备之一。CAN-Ethernet通信模块,是一种直接连接以太网
[嵌入式]
高通宣布2023年推出下一代Arm处理器:由苹果前员工负责开发
高通正寻求认真加强其 PC 处理器,昨晚宣布了下一代基于 Arm 的处理器计划,“旨在为 Windows PC 设定性能基准”,将能够与苹果的 M 系列处理器并驾齐驱。    高通首席技术官 James Thompson 博士在公司 2021 年投资者大会上宣布了新处理器的计划,目标是在 2023 年推出,推出前九个月内向硬件客户提供样品。 据 The Verge 报道,新处理器将由 Nuvia 团队设计,高通今年早些时候以 14 亿美元的巨额收购收购了该团队。值得注意的是,Nuvia 是由三位前苹果员工于 2019 年创立的,他们之前为苹果的 A 系列处理器工作过。    高通也做出了重大承诺:除了与苹果一流的 M 系列处
[半导体设计/制造]
高通宣布2023年推出下一代<font color='red'>Arm处理器</font>:由苹果前员工负责开发
基于ARM处理器的LCD控制及触摸屏接口设计
0 引言 随着信息技术的不断发展,嵌入式系统正在越来越广泛的应用到航空航天、消费类电子、通信设备等领域。而在嵌入式系统中,LCD作为人机交互的主要设备之一,显示系统又是不可缺少的一部分。近年来,随着微处理器性能的不断提高,特别是ARM处理器系列的出现,嵌入式系统的功能也变得越来越强大。液晶显示器由于具有功耗低、外形尺寸小、价格低、驱动电压低等特点以及其优越的字符和图形的显示功能,已经成为嵌入式系统使用中的首选的输出设备。随着多媒体技术的发展,单色的LCD已不能满足人们在各种多媒体应用方面的更高要求,彩色LCD正越来越广泛地被应用到嵌入式系统中。触摸屏是人们获取信息的一种便利工具, 已广泛应用于工商、税务、银行等各种需要对公众
[单片机]
基于<font color='red'>ARM处理器</font>的LCD控制及触摸屏接口设计
uCOS II在ARM处理器上移植过程中的中断处理
uCOS II是一个源码公开、可移植、可固化、可剪裁和抢占式的实时多任务操作系统,其大部分源码是用ANSI C编写,与处理器硬件相关的部分使用汇编语言编写。总量约200行的汇编语言部分被压缩到最低限度,以便于移植到任何一种其它的CPU上。 uCOS II最多可支持56个任务,其内核为占先式,总是执行就绪态的优先级最高的任务,并支持Semaphore (信号量)、Mailbox (邮箱)、MessageQueue(消息队列)等多种常用的进程间通信机制。与大多商用RTOS不同的是,uCOS II公开所有的源代码.并可以免费获得,只对商业应用收取少量License费用。 uCOS II移植跟OS_CUP_C.C、OS_
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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