打印

请教几个ARM的基础问题

[复制链接]
2001|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
allokline|  楼主 | 2008-7-3 08:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 带有移位操作的指令,其移位操作发生在那个周期,fetch、decode、excute?如果发生在excute阶段则其操作怎么就会在一个时钟周期内完成桶形移位器的操作和ALU的操作,这样理解正确吗?

2 左移操作会把移出的位送入C标志,右移是否可以把C标志位移入数据内,为什么右移的位数为1~32,而左移的位数为0~31?

3 ARM中进行1减1操作时为什么会影响到C标志位,是否跟符号数的表示有关?

4 Cache为什么会导致执行时间的不可预测性,cache通常是用什么做的跟SRAM的区别主要在那些方面?

相关帖子

沙发
sxggj| | 2008-7-3 09:19 | 只看该作者

我也正在看ARM,拍砖

1、移位发生在执行阶段
2、你看到了32估计是印刷错误
3、应该是无符号数才会
4、CACHE采用以行为操作单位,一行大于一个字节

使用特权

评论回复
板凳
阿南| | 2008-7-3 14:12 | 只看该作者

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

使用特权

评论回复
地板
sxggj| | 2008-7-4 10:23 | 只看该作者

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

下面是原话,请大家帮忙翻译一下,特别是a power of two是什么意思

使用特权

评论回复
5
sxggj| | 2008-7-4 11:03 | 只看该作者

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

左移相当于乘法,右移相当于除法,估计是乘法与除法上的区别

使用特权

评论回复
6
allokline|  楼主 | 2008-7-5 12:31 | 只看该作者

继续努力

   搞明白了,是计算机中数据表示的问题,其实32在这里就相当于是0;大家再仔细查一下,先不说了;
   问了四个问题,感觉自己真的很幼稚;特别是最后一个问题,太幼稚了,呵呵!
   哎,看来还是学习不认真,今后还的多多努力!

使用特权

评论回复
7
dld2| | 2008-7-5 12:43 | 只看该作者

顶一下

使用特权

评论回复
8
sxggj| | 2008-7-7 09:13 | 只看该作者

32为什么要等于0

就算等于,为什么会有两种表达方式??一种不就够了吗
还有,,在LSR和LSL中 C 是参加移位的,移动32位并不等于没移.

使用特权

评论回复
9
sxggj| | 2008-7-8 17:12 | 只看该作者

楼上有错

经验证:C不参加移位,,LSL 0 相当于一个NOP指令,,LSR相当于MOV R 0

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

18

帖子

0

粉丝