Кто-нибудь знает, что делает "mov edi, edi"? - PullRequest
12 голосов
/ 16 сентября 2010
69A8AB13  int         3    
69A8AB14  int         3    
69A8AB15  mov         edi,edi 
69A8AB17  push        ebp  
69A8AB18  mov         ebp,esp 

mov edi,edi не имеет смысла для меня, зачем это?

Ответы [ 3 ]

32 голосов
/ 16 сентября 2010

Это 2-байтовая инструкция NOP.Он включается в начале любой функции изображения, скомпилированного с параметром / hotpatch:

http://msdn.microsoft.com/en-us/library/ms173507.aspx

-scott

4 голосов
/ 22 августа 2017

Согласно этой странице: Обратный инжиниринг StackExchange

В x86-64 mov edi edi не является NOP. В x86-64 он обнуляет старшие 32 бита rdi.

Я подумал, что это достаточно важно, чтобы указать на это, в дополнение к ответу snoone .

4 голосов
/ 22 сентября 2011
...