Анти-отладка с использованием очереди предварительной выборки не работает с моим процессором

Почему этот код позволяет мне обнаруживать отладчик?

Ссылка выше подсказала мне способ использовать очередь предварительной выборки для анти-отладки, затем я попытался использовать приведенный ниже код для тестирования, но мне это не удалось. Может ли кто-нибудь помочь мне указать, если мой код неверен. Мой процессор - Intel® Core ™ (i7-2630QM 2,00 ГГц). большое спасибо

ML: D: \ Programs \ masm32 \ Bin \ ML.EXE / c / coff / Cp / nologo / I "D: \ Programs \ masm32 \ Include» "AntiDebug.asm»

Ссылка на сайт: D: \ Programs \ masm32 \ Bin \ LINK.EXE /SECTION:.text,RWE / SUBSYSTEM: WINDOWS / RELEASE /VERSION:4.0 / LIBPATH: "D: \ Programs \ masm32 \ Lib» /ИЗ:"AntiDebug.exe» "AntiDebug.obj»

Он всегда выполняет отладочную метку, независимо от того, отлаживаю я или нет, и никогда не выполнится 'JMP нормальный ».

.386
.model flat, stdcall  ;32 bit memory model
option casemap :none  ;case sensitive

include windows.inc
include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib

.data
szDebug     db  'Hey, you are debugging!!!',0
szError     db  'Error',0
szNormal    db  'You are running it without debugging',0
szPrompt    db  'Prompt',0

.code
start:
    call IsDebug
debug:
    invoke MessageBox, NULL, addr szDebug, addr szError, MB_OK
    invoke ExitProcess, -1
normal:
    invoke MessageBox, NULL, addr szNormal, addr szPrompt, MB_OK
    invoke ExitProcess, 0
IsDebug:
    mov al, 0c3h
    mov edi, offset IsDebug
    mov cx, 20h
    rep stosb
    jmp normal
end start