请教几个ARM的基础问题

[复制链接]
2950|8
 楼主| allokline 发表于 2008-7-3 08:52 | 显示全部楼层 |阅读模式
1&nbsp;带有移位操作的指令,其移位操作发生在那个周期,fetch、decode、excute?如果发生在excute阶段则其操作怎么就会在一个时钟周期内完成桶形移位器的操作和ALU的操作,这样理解正确吗?<br /><br />2&nbsp;左移操作会把移出的位送入C标志,右移是否可以把C标志位移入数据内,为什么右移的位数为1~32,而左移的位数为0~31?<br /><br />3&nbsp;ARM中进行1减1操作时为什么会影响到C标志位,是否跟符号数的表示有关?<br /><br />4&nbsp;Cache为什么会导致执行时间的不可预测性,cache通常是用什么做的跟SRAM的区别主要在那些方面?
sxggj 发表于 2008-7-3 09:19 | 显示全部楼层

我也正在看ARM,拍砖

1、移位发生在执行阶段<br />2、你看到了32估计是印刷错误<br />3、应该是无符号数才会<br />4、CACHE采用以行为操作单位,一行大于一个字节
阿南 发表于 2008-7-3 14:12 | 显示全部楼层

兄弟们学习的很仔细,很不错

  
sxggj 发表于 2008-7-4 10:23 | 显示全部楼层

我查了一下,第二个问题确实存在

下面是原话,请大家帮忙翻译一下,特别是a&nbsp;power&nbsp;of&nbsp;two是什么意思
sxggj 发表于 2008-7-4 11:03 | 显示全部楼层

现在唯一能解释原因可能是

左移相当于乘法,右移相当于除法,估计是乘法与除法上的区别
 楼主| allokline 发表于 2008-7-5 12:31 | 显示全部楼层

继续努力

&nbsp;&nbsp;&nbsp;搞明白了,是计算机中数据表示的问题,其实32在这里就相当于是0;大家再仔细查一下,先不说了;<br />&nbsp;&nbsp;&nbsp;问了四个问题,感觉自己真的很幼稚;特别是最后一个问题,太幼稚了,呵呵!<br />&nbsp;&nbsp;&nbsp;哎,看来还是学习不认真,今后还的多多努力!
dld2 发表于 2008-7-5 12:43 | 显示全部楼层

顶一下

  
sxggj 发表于 2008-7-7 09:13 | 显示全部楼层

32为什么要等于0

就算等于,为什么会有两种表达方式??一种不就够了吗<br />还有,,在LSR和LSL中&nbsp;C&nbsp;是参加移位的,移动32位并不等于没移.
sxggj 发表于 2008-7-8 17:12 | 显示全部楼层

楼上有错

经验证:C不参加移位,,LSL&nbsp;0&nbsp;相当于一个NOP指令,,LSR相当于MOV&nbsp;R&nbsp;0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部