登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

为什么ARM的寄存器移位方式不支持算术左移和循环左移呢?

作者:悠悠长风 栏目:ARM技术
为什么ARM的寄存器移位方式不支持算术左移和循环左移呢?
看《ARM体系结构与编程》,上面讲到
数据处理指令的操作数的寻址方式,对于寄存器移位方式,只有
算术右移,逻辑左移,逻辑右移,循环右移,扩展循环右移,为什么没有算术左移和循环左移呢?

2楼: >>参与讨论
浪淘沙
岂有此理,ARM的寄存器移位方式不支持算术左移和循环左移
算术左移和逻辑左移在逻辑上是没有分别的,不是吗?

循环左移,恩........,研究研究。

3楼: >>参与讨论
肚里有史
在ARM里不设置算术左移和循环左移是有道理的
算术左移与逻辑左移是等价的,都是向左移位,LSB用0填充。
循环右移可以一次性实现1~31位的移位操作。因此,循环左移n位(0<n<32),可以用循环右移32-n位来实现。


4楼: >>参与讨论
悠悠长风
谢谢大家积极解答
我原来做的都是比较上层的东西,现在想做些底层的开发。
所以很多东西都不懂,经常会提一些比较傻的问题。
楼上的两位的回答,我看了。
我只是奇怪,为什么ARM的数据处理指令不支持循环左移呢?
大概有点过分的追问了。
但是我觉得,这些事情都有原因的。
如果知道为什么,可能对于理解ARM有很大的帮助

5楼: >>参与讨论
马甲啊马甲
楼上不是有人回答了吗?
[#FF0000]循环左移可以通过循环右移来实现[#/]

要知道,做条指令也不是一件简单的事情。好象在ARM中,移位是直接通过多路开关来选择的~~~~~~~是个开关矩阵,好象有32*32那么多个开关……


32位的数循环左移16位,跟循环右移16位有什么区别吗?循环左移n位可以化成循环右移32-n位来实现。

6楼: >>参与讨论
悠悠长风
re
这下明白了

7楼: >>参与讨论
arm
二进制数左移一位相当于原内容乘2,右移一位相当于原内容除以2。ARM具有完备的乘法指令,却没有除法指令。丰富的右移指令既能完成相应的逻辑操作,又能配合减法来做除法。
参与讨论
昵称:
讨论内容:
 
 
相关帖子
想买个ARM仿真器,请教一下买什么的好?
vivi 烧写bios
DC型号
转载:Ryansheng大侠的EWARM(IAR) 快速用户指南
第一次画请兄弟们评论我这个流程图,谢谢!
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号