注册 登录
编程论坛 汇编论坛

请高手翻译一下段程序

vtac 发布于 2005-10-08 21:19, 980 次点击
请高手翻译一下段程序。我是菜鸟呀什么都看不懂
 REPNE SCAS BYTE PTR ES:[EDI]            
::00611AE5::  AE                       SCAS BYTE PTR ES:[EDI]                  
::00611AE6::  F7D1                     NOT ECX                                 
::00611AE8::  2BF9                     SUB EDI,ECX                             
::00611AEA::  8BC1                     MOV EAX,ECX                             
::00611AEC::  8BF7                     MOV ESI,EDI                             
::00611AEE::  8BFA                     MOV EDI,EDX                             
::00611AF0::  C1E9 02                  SHR ECX,2                              
::00611AF3::  F3                       REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
::00611AF4::  A5                       MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
::00611AF5::  8BC8                     MOV ECX,EAX                             
::00611AF7::  83E1 03                  AND ECX,3                              
::00611AFA::  F3                       REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
::00611AFB::  A4                       MOVS BYTE PTR ES:[EDI],BYTE PTR [ESI]  
1 回复
#2
xieheping2005-10-20 21:53
我用这里给你讲好吗,可是我说的不一定,我讲的仅供参考 ::00611AE5:: AE SCAS BYTE PTR ES:[EDI] ;串扫描[EDL]当这里的字节存在段寄存器ES 里 ::00611AE6:: F7D1 NOT ECX ;取ECX的非 ::00611AE8:: 2BF9 SUB EDI,ECX ;将ECX与EDL相减将结果存在EDL里 ::00611AEA:: 8BC1 MOV EAX,ECX ;将ECX送到EAX里 ::00611AEC:: 8BF7 MOV ESI,EDI ;将EDL送到ESL ::00611AEE:: 8BFA MOV EDI,EDX ;将EDX送到EDL ::00611AF0:: C1E9 02 SHR ECX,2 ;将ECX右移2位 ::00611AF3:: F3 REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI];串前缀将EDL里的字串送给ESL ::00611AF4:: A5 MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI] ;将字ESL串送给EDL ::00611AF5:: 8BC8 MOV ECX,EAX ;将EAX送给ECX ::00611AF7:: 83E1 03 AND ECX,3 ;将ECX与3进行逻辑与运算 ::00611AFA:: F3 REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]:重复前缀,将ESL里的字串传给EDL ::00611AFB:: A4 MOVS BYTE PTR ES:[EDI],BYTE PTR [ESI] ;将ESL里的字节串传送给EDL 这是一段反编译.
1