shrl -0x1if(4(%rsp) - 我理解左移,但目前不了解-0x1if ...汇编指令的一部分?

时间:2017-11-05 21:05:20

标签: assembly x86-64

我目前还在学习装配。其余的代码在我理解之下并且宁愿自己弄清楚,但涉及右移(shrl)的行是我不理解的。 0x1if(4(%rsp)是什么意思?谢谢!

 400783:    89 7c 24 ec             mov    %edi,-0x14(%rsp)
 400787:    c7 44 24 fc 00 00 00    movl   $0x0,-0x4(%rsp)
 40078e:    00 
 40078f:    eb 14                   jmp    4007a5 <f3+0x22>
 400791:    8b 44 24 ec             mov    -0x14(%rsp),%eax
 400795:    83 e0 01                and    $0x1,%eax
 400798:    85 c0                   test   %eax,%eax
 40079a:    74 05                   je     4007a1 <f3+0x1e>
 40079c:    83 44 24 fc 01          addl   $0x1,-0x4(%rsp)
 **4007a1:  d1 6c 24 ec             shrl   -0x1if (4(%rsp)***
 4007a5:    83 7c 24 ec 00          cmpl   $0x0,-0x14(%rsp)
 4007aa:    75 e5                   jne    400791 <f3+0xe>
 4007ac:    8b 44 24 fc             mov    -0x4(%rsp),%eax
 4007b0:    f7 d8                   neg    %eax
 4007b2:    c3                      retq   

1 个答案:

答案 0 :(得分:5)

console.log

可能发生了某种OCR错误。编码指令清楚地表明这应该是4007a1: d1 6c 24 ec shrl -0x1if (4(%rsp)