当未定义时,使用edx寄存器进行i386反汇编

时间:2018-02-14 19:29:22

标签: assembly undefined disassembly i386 edx

下面是函数开头的反汇编。第一次提到edx寄存器是" sarl $ 0x3,%edx",它会改变现有值。据我了解,输入函数时edx寄存器的值是未定义的。谁能解释一下这里发生了什么?感谢。

00007672    pushl   %ebp
00007673    movl    %esp, %ebp
00007675    pushl   %edi
00007676    pushl   %esi
00007677    pushl   %ebx
00007678    calll   0x767d
0000767d    popl    %ebx
0000767e    subl    $0x9c, %esp
00007684    movl    0x14(%ebp), %edi
00007687    movl    0x10(%ebp), %esi
0000768a    calll   __ZN9Node11GetInstanceEv
0000768f    movl    $0x66666667, %ecx
00007694    movl    %eax, -0x8c(%ebp)
0000769a    movl    %esi, %eax
0000769c    imull   %ecx
0000769e    movl    -0x8c(%ebp), %eax
000076a4    sarl    $0x1f, %esi
000076a7    sarl    $0x3, %edx
000076aa    subl    %esi, %edx
000076ac    cvtsi2ssl   %edx, %xmm0
000076b0    leal    -0x2c(%ebp), %esi

0 个答案:

没有答案