在32位机器上读取或写入内存是每个周期4字节完成的,如果我有一个整数和一个带有一些值的长双变量,那么读取/写入它们需要多少个周期?如果我在不同的平台和机器上使用这些变量,它会有什么不同吗? 谢谢。
答案 0 :(得分:2)
在您的情况下,了解整数和 long double 的字节数。然后使用三的规则来计算它需要多长时间。
答案 1 :(得分:2)
在x86上32位大小就像这样整数4个字节,long double实际上是16个字节(至少它应该是,在某个arch上它的8个字节和其他12个字节)并且每个循环只能在4个字节上运行一段时间,因此整数需要1个周期,而长双倍需要4个(分别为所提到的其他尺寸的3个和2个)周期。在具有SSE指令的64位机器上,可以在一个或两个周期内完成16个字节。
答案 2 :(得分:1)
这里有一个关于这个主题的好问题:long long implementation in 32 bit machine评分最高的回复可以深入了解它们的存储和操作方式。
由于我不知道你指的是什么架构,因为它只是作业,我很想说它需要两个mov
指令才能执行存储长整数。因此,两个周期。
答案 3 :(得分:0)
整数= 4字节,长双精度= 10字节,表示整数= 1循环长双精度= 2.5(3?)循环。