在x86 GNU汇编程序中,与内存相关的操作有不同的后缀。例如:内存中后缀对缓存操作的影响
movb, movs, movw, movl, movq, movt(?)
现在我的问题是:
是否后缀对处理器是如何获取数据从主存储的任何影响或将永远是一个或多个32位(x86 )块加载到缓存?
内存访问旁边有什么影响?
在x86 GNU汇编程序中,与内存相关的操作有不同的后缀。例如:内存中后缀对缓存操作的影响
movb, movs, movw, movl, movq, movt(?)
现在我的问题是:
是否后缀对处理器是如何获取数据从主存储的任何影响或将永远是一个或多个32位(x86 )块加载到缓存?
内存访问旁边有什么影响?
那些不是“后缀”。您正在查看六个不同的机器说明。他们每个人移动不同数量的数据。例如,movb
仅移动一个字节。
好吧,我现在看到你在问缓存。总是只有完整的缓存行被移入缓存。例如,如果高速缓存为16个字节宽,则将从主内存(一个或两个高速缓存行)移动16或32个字节。
但是,从缓存移入寄存器的内容取决于指令。
它不影响内存访问的完成方式;唯一可能影响到的是CPU数据总线的宽度。它影响的只是数据操作的粒度。