所以我正在学习汇编,我们有一个任务是找到从内存读取和从缓存读取之间的时间差。我们必须通过创建 2 个循环并对它们进行计时来做到这一点。(一个从主存读取,另一个从缓存中读取)。问题是,我不知道也找不到任何告诉我如何从缓存或主内存中读取的东西=/。你们能帮帮我吗?我在 MASM32 中这样做。我了解如何制作循环以及大多数汇编语言,但我就是无法阅读 =/
编辑:
我有一个问题,我已经这样做了......
mov ecx, 100 ;loop 100 times
xor eax, eax ;set eax to 0
_label:
mov eax, eax ;according to me this is read memory is that good?
dec ecx ;dec loop
jnz _label ;if still not equal to 0 goes again to _label
……这样可以吗?
编辑2:
那么,我不打算撬,感谢您的帮助,我还有另一个问题,因为这是我必须做的两个循环。我需要以某种方式比较它们,我一直在寻找计时器指令,但我没有找到任何我只找到的:timeGetTime,GetTickCount和Performance Counter但据我了解,这些指令返回系统时间而不是时间循环完成。有没有办法真正做我想做的事?还是我需要考虑另一种方式?
此外,如果我给出各种“mov”指令,可以在第二个循环中读取不同的寄存器(不从缓存中读取的寄存器)吗?还是我完全不在这儿?
很抱歉所有这些问题,但再次感谢您的帮助。