我有一些x86汇编代码 . 我想确定加载内存 so that I can establish how many distinct cache-line blocks are being accessed by the CPU 的说明 .
我应该注意的x86指令的子集是什么?最初我只是认为这是所有以 mov 开头的指令,它还加载 qword 或 dword ,并包含 ptr 参考,但我想先检查一下 .
mov
qword
dword
ptr
你的方法有缺陷 . 相同的指令可以访问不同的缓存行 . 例如 memcpy 只需要一些指令,但可以在循环中触及兆字节的内存 .
memcpy
在反汇编输出中寻找内存操作数并不会让你随处可见,因为许多指令将加载/存储相同的数据,并且循环中的一些指令将加载/存储大量不同的数据 .
您需要一个缓存/内存分析程序来找到最终问题的答案 .
1 回答
你的方法有缺陷 . 相同的指令可以访问不同的缓存行 . 例如
memcpy
只需要一些指令,但可以在循环中触及兆字节的内存 .在反汇编输出中寻找内存操作数并不会让你随处可见,因为许多指令将加载/存储相同的数据,并且循环中的一些指令将加载/存储大量不同的数据 .
您需要一个缓存/内存分析程序来找到最终问题的答案 .