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

Memory 内存中的后缀对缓存操作的影响,memory,syntax,assembly,gnu-assembler,Memory,Syntax,Assembly,Gnu Assembler,在x86 GNU汇编程序中,与内存相关的操作有不同的后缀。例如: movb, movs, movw, movl, movq, movt(?) 现在我的问题是: 后缀是否对处理器从主内存获取数据的方式有任何影响,或者始终是加载到缓存中的一个或多个32位(x86)块 除了内存访问之外还有什么影响?它不影响内存访问的方式;唯一能影响这一点的是CPU数据总线的宽度。它只影响数据操作的粒度。它不影响内存访问的方式;唯一能影响这一点的是CPU数据总线的宽度。它所影响的只是数据操作的粒度。这些不是“后缀”。

在x86 GNU汇编程序中,与内存相关的操作有不同的后缀。例如:

movb, movs, movw, movl, movq, movt(?)
现在我的问题是:

后缀是否对处理器从主内存获取数据的方式有任何影响,或者始终是加载到缓存中的一个或多个32位(x86)块


除了内存访问之外还有什么影响?

它不影响内存访问的方式;唯一能影响这一点的是CPU数据总线的宽度。它只影响数据操作的粒度。

它不影响内存访问的方式;唯一能影响这一点的是CPU数据总线的宽度。它所影响的只是数据操作的粒度。

这些不是“后缀”。您看到的是六种不同的机器指令。它们中的每一个都会移动不同数量的数据<例如,code>movb只移动一个字节


好的,我现在知道你在问缓存的事了。只有完整的缓存线才会移动到缓存中。例如,如果缓存是16字节宽的,那么将从主内存(一条或两条缓存线)移动16或32字节

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

这些不是“后缀”。您看到的是六种不同的机器指令。它们中的每一个都会移动不同数量的数据<例如,code>movb只移动一个字节


好的,我现在知道你在问缓存的事了。只有完整的缓存线才会移动到缓存中。例如,如果缓存是16字节宽的,那么将从主内存(一条或两条缓存线)移动16或32字节

但是,从缓存移动到寄存器的内容取决于指令