x86反汇编中<<<和>>>的含义

ars*_*ada 0 linux x86 assembly

我似乎无法理解x86反汇编中>>><<<字符和字符

例如:

CMP        BYTE PTR [EAX+33H],0
JE         -126CB479H >>> +33
Run Code Online (Sandbox Code Playgroud)

要么

LEA        ESI,DWORD PTR [ECX+0CH]  <<< +19
Run Code Online (Sandbox Code Playgroud)

我理解这里的基本指示; Jump when Equal这之后,会出现CompareLoad Effective Address,但>>><<<混淆了我.任何指导都会有所帮助.谢谢.

lor*_*nix 5

它们是跳跃目的地的指标.它是IDA Pro输出的简单形式,类似于许多克隆.

CMP        BYTE PTR [EAX+33H],0
JE         -126CB479H >>> +33
Run Code Online (Sandbox Code Playgroud)

这表明该JE命令的目标是进一步向下+33字节(>>>去某处...)

LEA        ESI,DWORD PTR [ECX+0CH]  <<< +19
Run Code Online (Sandbox Code Playgroud)

这表示该指令是跳转/分支/调用的目的地(<<< - 来自),其进一步向下+19字节.19个字节后,内存高19个字节......你明白了......

它们不是任何标准汇编语言的一部分,就个人而言,这些指标应与注释分隔符一起使用.例:

CMP        BYTE PTR [EAX+33H],0
JE         -126CB479H               ; >>> +33
LEA        ESI,DWORD PTR [ECX+0CH]  ; <<< +19
Run Code Online (Sandbox Code Playgroud)

假装你画线显示逻辑流程......

CMP        BYTE PTR [EAX+33H],0
JE         -126CB479H               ; >>> +33 ---+
                                                 |
; many wonderful and varied instructions here    |
                                                 |
HLT                                 ; <<< -33 ---+
Run Code Online (Sandbox Code Playgroud)

这有帮助吗?