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

关于理解这段代码的问题

UAPOPPING 发布于 2015-02-18 13:11, 4578 次点击
求教这段代码到底是什么意思?我好像模糊感觉到是一个递归,但是具体一点就看不懂了。
  
Dump of assembler code for function func4:
   0x08048c80 <+0>:    push   %ebp
   0x08048c81 <+1>:    mov    %esp,%ebp
   0x08048c83 <+3>:    sub    $0x18,%esp
=> 0x08048c86 <+6>:    mov    %ebx,-0x8(%ebp)
   0x08048c89 <+9>:    mov    %esi,-0x4(%ebp)
   0x08048c8c <+12>:    mov    0x8(%ebp),%edx
   0x08048c8f <+15>:    mov    0xc(%ebp),%eax
   0x08048c92 <+18>:    mov    0x10(%ebp),%ebx
   0x08048c95 <+21>:    mov    %ebx,%ecx
   0x08048c97 <+23>:    sub    %eax,%ecx
   0x08048c99 <+25>:    mov    %ecx,%esi
   0x08048c9b <+27>:    shr    $0x1f,%esi
   0x08048c9e <+30>:    lea    (%esi,%ecx,1),%ecx
   0x08048ca1 <+33>:    sar    %ecx
   0x08048ca3 <+35>:    add    %eax,%ecx
   0x08048ca5 <+37>:    cmp    %edx,%ecx
   0x08048ca7 <+39>:    jle    0x8048cc0 <func4+64>
   0x08048ca9 <+41>:    sub    $0x1,%ecx
   0x08048cac <+44>:    mov    %ecx,0x8(%esp)
   0x08048cb0 <+48>:    mov    %eax,0x4(%esp)
   0x08048cb4 <+52>:    mov    %edx,(%esp)
   
   0x08048cb7 <+55>:    call   0x8048c80 <func4>
   0x08048cbc <+60>:    add    %eax,%eax
   0x08048cbe <+62>:    jmp    0x8048ce0 <func4+96>
   0x08048cc0 <+64>:    mov    $0x0,%eax
   0x08048cc5 <+69>:    cmp    %edx,%ecx
   0x08048cc7 <+71>:    jge    0x8048ce0 <func4+96>
   0x08048cc9 <+73>:    mov    %ebx,0x8(%esp)
   0x08048ccd <+77>:    add    $0x1,%ecx
   0x08048cd0 <+80>:    mov    %ecx,0x4(%esp)
   0x08048cd4 <+84>:    mov    %edx,(%esp)
   
   0x08048cd7 <+87>:    call   0x8048c80 <func4>
   0x08048cdc <+92>:    lea    0x1(%eax,%eax,1),%eax
   0x08048ce0 <+96>:    mov    -0x8(%ebp),%ebx
   0x08048ce3 <+99>:    mov    -0x4(%ebp),%esi
   0x08048ce6 <+102>:    mov    %ebp,%esp
   0x08048ce8 <+104>:    pop    %ebp
   0x08048ce9 <+105>:    ret
4 回复
#2
zklhp2015-02-20 22:43
过年懒得看

给楼主拜年了
#3
hu9jj2015-02-25 16:49
看不懂,怎么会有%$等符号。
#4
zklhp2015-02-25 20:45
以下是引用hu9jj在2015-2-25 16:49:56的发言:

看不懂,怎么会有%$等符号。

AT&T规则 虽然提高了规范性 但写起来。。。 估计也没人写
#5
xzlxzlxzl2015-02-26 09:51
学习ing
1