全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM处理器中“8位位图”的理解分析(转) “八位位图”要求 8位位图,即常数是由一个8位的常数循环移位偶数位得到的。 引入“八位位图”的原因 ARM规定所有的指令码等长32位,前24位是指令助记符,条件码,寄存器等等,后12位是第二操作数。而第二操作数是32位,但是指令码中只剩12位了,为了能用这12位来表示32位的数就采用了“八位位图”。 “八位位图原理” 如何用12位表示32位的数?8位用来存数据,4位用来存移动的位数。 8位存数据:解释了“该常数必须对应8位位图”。 4位存移位的次数:解释了为什么只能移偶数位。4位只有16种可能值,而32位数可以循环移位32次(32种可能),那就只好限制:只能移偶数位(两位两位地移,好像一个16位数在移位,16种移位可能)。这样就解决了能表示的情况是实际情况一半的矛盾。 判断是否符合“八位位图”的较快方法 看第一个“1”和最后一个“1”相距的距离如果大于8位则一定不是八位图,然后再看移动偶数位能不能把这些数都移到第八位中,如果可以就是“八位位图”。无法表示的32位数, 只有通过逻辑或算术运算等其它途径获得了. 比如0xffffff00, 可以通过0x000000ff按位取反得到.关于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-2827-2524-2120 19-1615-1211-0 (12位)cond001opcodeSRnRdshifter_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位数有212种可能,而32位数有232种)。 但是又要用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 到(212-1)。大于(212-1)的数就没办法表示了。而且细细想来“8位存数据,4位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46607.1-2025塑料热固性粉末模塑料(PMCs)试样的制备第1部分:一般原理及多用途试样的制备
- GB/T 22437.3-2025起重机载荷与载荷组合的设计原则第3部分:塔式起重机
- 浙江台州仙居县经济和信息化局选聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 中国金属供应协议书
- 村民拆除栏杆协议书
- 使用临时货梯协议书
- 出国培训协议书模板
- 汕头市政府12345服务热线工作人员招考易考易错模拟试题(共500题)试卷后附参考答案
- 使用管理协议书范本
- 养蜂厂买断合同范本
- 电力企业冬季安全培训课件
- GB/T 14193.1-2025液化气体气瓶充装规定第1部分:工业气瓶
- 滚动轴承装拆课件
- 斗罗大陆课件
- 光伏发电土建项目监理实施细则
- 滑雪安全救护知识培训课件
- 高中数学创新教学案例及课程设计
- 野生动物讲解课件
- XX医疗集团医院体系介绍
- 2025年内蒙古自治区综合评标评审专家库专家考试历年参考题库含答案详解(5套)
- 故障录波识图基础及典型故障分析
评论
0/150
提交评论