Почему следующий ассемблерный код является средством от-отладки?
l1:
call l3
l2:
;some code
l3:
mov al, 0c3h
mov edi, offset l3
or ecx, -1
rep stosb
Я знаю, что C3h — это RETN
, и я знаю, что stobs
записывает значение в al
как код операции в соответствии со смещением в edi
, и это делается ecx
раз. из-за rep
.
Мне также известно, что stobs
и stosw
будут работать, если они были предварительно-выгружены на архитектуре Intel в качестве исходного формата.
Если мы запустим программу в режиме отладки, предварительная-выборка не имеет значения, и метка l2 будет выполняться (,потому что это один-шаг), в противном случае, если нет отладчика, будет выполняться ping-pong между l1 и l3 я прав?