关于NEG指令的不解之处
isunx 2011-11-16 11:51:53 请教各位高师,本段程序中的NEG指令起到什么作用,谢谢!
;*************************************************
;功 能: 搜索PE文件里全零的区域
;返回值: EAX - 起始地址
; EDX - 全零区域的大小
;*************************************************
GetZero proc zStart,zSize,rSize
pushfd
push esi
push edi
cld
mov eax,zStart
.if word ptr [eax] == 5A4Dh
add eax,[eax+3ch]
.if dword ptr [eax] == 00004550h
mov edx,0F8h
add edx,eax
sub edx,zStart
sub zSize,edx
add zStart,edx
.endif
.endif
mov edi,zStart
mov ecx,zSize
shr ecx,2
xor eax,eax
lp0:repnz scasd
lea esi,[edi-4]
mov edx,esi
repz scasd
sub edx,edi
neg edx ;*** ?
sub edx,4 ;*** ?
jecxz lp1
cmp edx,rSize
jb lp0
lp1: .if edx >= rSize
lea eax,[esi+4]
sub edx,4
.endif
pop edi
pop esi
popfd
ret
GetZero endp