だから私はアセンブリを教えられており、メモリからの読み取りとキャッシュからの読み取りの時間差を見つけるという課題があります。これを行うには、2つのループを作成し、それらのタイミングを調整します。(1つはメインメモリから読み取り、もう1つはキャッシュから読み取ります)。問題は、キャッシュまたはメインメモリのいずれかから読み取る方法を教えてくれるものが何もわからないことです=/。助けてくれませんか?私は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:
それでは、私は詮索するつもりはありません。あなたの助けに感謝します。これらは私がしなければならない2つのループなので、別の質問があります。どういうわけかそれらを比較する必要があります、私はタイマー命令を探していましたが、私が見つけたものは見つかりませんでした:timeGetTime、GetTickCount、およびパフォーマンスカウンターしかし、私が理解している限り、これらの命令は時間ではなくシステム時間を返しますループが終了するまでにかかります。私がやりたいことを実際に行う方法はありますか?または私は別の方法を考える必要がありますか?
また、2番目のループ(キャッシュから読み取らないレジスタ)で異なるレジスタから読み取るために、さまざまな「mov」命令を与えても大丈夫ですか?それとも私はここで完全にベースから外れていますか?
このすべての質問について申し訳ありませんが、もう一度あなたの助けに感謝します。