内存中后缀对缓存操作的影响

时间:2010-03-14 04:31:18

标签: memory syntax assembly gas

在x86 GNU汇编程序中,内存相关操作有不同的后缀。 E.g:

movb, movs, movw, movl, movq, movt(?)

现在我的问题如下:

后缀是否会对处理器如何从主内存中获取数据产生影响,或者总是将一个或多个32位(x86)块加载到缓存中?

内存访问有什么影响?

2 个答案:

答案 0 :(得分:3)

它不影响内存访问的完成方式;唯一可以影响的是CPU数据总线的宽度。它影响的只是数据操作的粒度。

答案 1 :(得分:2)

那些不是“后缀”。您正在查看六种不同的机器指令。它们中的每一个都移动不同数量的数据。例如,movb仅移动一个字节。


好的,我现在看到你在询问缓存了。始终只有完整的缓存行被移动到缓存中。例如,如果高速缓存是16字节宽,那么将从主存储器(一个或两个高速缓存行)移动16或32个字节。

然而,从缓存移动到寄存器的内容取决于指令。