| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2858 人关注过本帖
标题:改天注释一下 先留着
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:1 
改天注释一下 先留着

Dump of assembler code for function msvcrt!memset:
程序代码:
0x000007fb369b1060 <+0>:    mov    rax,rcx
0x000007fb369b1063 <+3>:    cmp    r8,0x8
0x000007fb369b1067 <+7>:    jb     0x7fb369b10f4 <msvcrt!memset+148>
0x000007fb369b106d <+13>:    movzx  edx,dl
0x000007fb369b1070 <+16>:    movabs r9,0x101010101010101
0x000007fb369b107a <+26>:    imul   rdx,r9
0x000007fb369b107e <+30>:    cmp    r8,0x40
0x000007fb369b1082 <+34>:    jb     0x7fb369b10d8 <msvcrt!memset+120>
0x000007fb369b1084 <+36>:    neg    rcx
0x000007fb369b1087 <+39>:    and    ecx,0x7
0x000007fb369b108a <+42>:    jne    0x7fb369b12b2 <msvcrt!free+274>
0x000007fb369b1090 <+48>:    add    rcx,rax
0x000007fb369b1093 <+51>:    mov    r9,r8
0x000007fb369b1096 <+54>:    and    r8,0x3f
0x000007fb369b109a <+58>:    shr    r9,0x6
0x000007fb369b109e <+62>:    je     0x7fb369b10d8 <msvcrt!memset+120>
0x000007fb369b10a0 <+64>:    cmp    r9,0x1c00
0x000007fb369b10a7 <+71>:    jae    0x7fb369b5df4 <toupper+20>
0x000007fb369b10ad <+77>:    mov    QWORD PTR [rcx],rdx
0x000007fb369b10b0 <+80>:    mov    QWORD PTR [rcx+0x8],rdx
0x000007fb369b10b4 <+84>:    mov    QWORD PTR [rcx+0x10],rdx
0x000007fb369b10b8 <+88>:    add    rcx,0x40
0x000007fb369b10bc <+92>:    mov    QWORD PTR [rcx-0x28],rdx
0x000007fb369b10c0 <+96>:    mov    QWORD PTR [rcx-0x20],rdx
0x000007fb369b10c4 <+100>:    dec    r9
0x000007fb369b10c7 <+103>:    mov    QWORD PTR [rcx-0x18],rdx
0x000007fb369b10cb <+107>:    mov    QWORD PTR [rcx-0x10],rdx
0x000007fb369b10cf <+111>:    mov    QWORD PTR [rcx-0x8],rdx
0x000007fb369b10d3 <+115>:    jne    0x7fb369b10ad <msvcrt!memset+77>
0x000007fb369b10d5 <+117>:    jmp    0x7fb369b10d8 <msvcrt!memset+120>
0x000007fb369b10d7 <+119>:    int3  
0x000007fb369b10d8 <+120>:    mov    r9,r8
0x000007fb369b10db <+123>:    and    r8,0x7
0x000007fb369b10df <+127>:    shr    r9,0x3
0x000007fb369b10e3 <+131>:    je     0x7fb369b10f4 <msvcrt!memset+148>
0x000007fb369b10e5 <+133>:    xchg   ax,ax
0x000007fb369b10e7 <+135>:    nop
0x000007fb369b10e8 <+136>:    mov    QWORD PTR [rcx],rdx
0x000007fb369b10eb <+139>:    add    rcx,0x8
0x000007fb369b10ef <+143>:    dec    r9
0x000007fb369b10f2 <+146>:    jne    0x7fb369b10e8 <msvcrt!memset+136>
0x000007fb369b10f4 <+148>:    test   r8,r8
0x000007fb369b10f7 <+151>:    jne    0x7fb369b1185 <msvcrt!memmove+133>
0x000007fb369b10fd <+157>:    ret    0x0


Dump of assembler code for function toupper:
程序代码:
0x000007fb369b5de0 <+0>:    cmp    DWORD PTR [rip+0x89189],0x0        # 0x7fb36a3ef70 <msvcrt!_dstbias+32>
0x000007fb369b5de7 <+7>:    je     0x7fb369d7674 <msvcrt!_ltow+40>
0x000007fb369b5ded <+13>:    xor    edx,edx
0x000007fb369b5def <+15>:    jmp    0x7fb369bdfac <msvcrt!_toupper_l>
0x000007fb369b5df4 <+20>:    movnti QWORD PTR [rcx],rdx
0x000007fb369b5df8 <+24>:    movnti QWORD PTR [rcx+0x8],rdx
0x000007fb369b5dfd <+29>:    movnti QWORD PTR [rcx+0x10],rdx
0x000007fb369b5e02 <+34>:    add    rcx,0x40
0x000007fb369b5e06 <+38>:    movnti QWORD PTR [rcx-0x28],rdx
0x000007fb369b5e0b <+43>:    movnti QWORD PTR [rcx-0x20],rdx
0x000007fb369b5e10 <+48>:    dec    r9
0x000007fb369b5e13 <+51>:    movnti QWORD PTR [rcx-0x18],rdx
0x000007fb369b5e18 <+56>:    movnti QWORD PTR [rcx-0x10],rdx
0x000007fb369b5e1d <+61>:    movnti QWORD PTR [rcx-0x8],rdx
0x000007fb369b5e22 <+66>:    jne    0x7fb369b5df4 <toupper+20>
0x000007fb369b5e24 <+68>:    lock or BYTE PTR [rsp],0x0
0x000007fb369b5e29 <+73>:    jmp    0x7fb369b10d8 <msvcrt!memset+120>
0x000007fb369b5e2e <+78>:    int3  
0x000007fb369b5e2f <+79>:    nop
0x000007fb369b5e30 <+80>:    nop
0x000007fb369b5e31 <+81>:    nop
0x000007fb369b5e32 <+82>:    nop
0x000007fb369b5e33 <+83>:    nop
0x000007fb369b5e34 <+84>:    nop
0x000007fb369b5e35 <+85>:    nop
0x000007fb369b5e36 <+86>:    nop
0x000007fb369b5e37 <+87>:    nop
0x000007fb369b5e38 <+88>:    mov    QWORD PTR [rsp+0x8],rbx
0x000007fb369b5e3d <+93>:    mov    QWORD PTR [rsp+0x10],rsi
0x000007fb369b5e42 <+98>:    mov    DWORD PTR [rsp+0x18],r8d
0x000007fb369b5e47 <+103>:    push   rdi
0x000007fb369b5e48 <+104>:    push   r12
0x000007fb369b5e4a <+106>:    push   r13
0x000007fb369b5e4c <+108>:    push   r14
0x000007fb369b5e4e <+110>:    push   r15
0x000007fb369b5e50 <+112>:    sub    rsp,0x40
0x000007fb369b5e54 <+116>:    mov    r14d,r8d
0x000007fb369b5e57 <+119>:    mov    ebx,edx
0x000007fb369b5e59 <+121>:    mov    r12d,ecx
0x000007fb369b5e5c <+124>:    test   r8d,r8d
0x000007fb369b5e5f <+127>:    jne    0x7fb369b5e6e <toupper+142>
0x000007fb369b5e61 <+129>:    call   0x7fb369b616c <msvcrt!exit+16>
0x000007fb369b5e66 <+134>:    test   eax,eax
0x000007fb369b5e68 <+136>:    jne    0x7fb369f0e7c <strncpy+42460>
0x000007fb369b5e6e <+142>:    mov    ecx,0x8
0x000007fb369b5e73 <+147>:    call   0x7fb369b1828 <msvcrt!_lock>
0x000007fb369b5e78 <+152>:    nop
0x000007fb369b5e79 <+153>:    cmp    DWORD PTR [rip+0x89100],0x1        # 0x7fb36a3ef80 <msvcrt!__lc_collate_cp+4>
0x000007fb369b5e80 <+160>:    je     0x7fb369b5f42 <toupper+354>
0x000007fb369b5e86 <+166>:    mov    DWORD PTR [rip+0x89058],0x1        # 0x7fb36a3eee8 <msvcrt!_winmajor+8>
0x000007fb369b5e90 <+176>:    mov    BYTE PTR [rip+0x89061],r14b        # 0x7fb36a3eef8 <msvcrt!_winmajor+24>
0x000007fb369b5e97 <+183>:    test   ebx,ebx
0x000007fb369b5e99 <+185>:    jne    0x7fb369b5f42 <toupper+354>
0x000007fb369b5e9f <+191>:    mov    rcx,QWORD PTR [rip+0x8876a]        # 0x7fb36a3e610 <msvcrt!_wcmdln+40>
0x000007fb369b5ea6 <+198>:    call   0x7fb369b3d14 <msvcrt!_initterm+68>
0x000007fb369b5eab <+203>:    mov    rsi,rax
0x000007fb369b5eae <+206>:    mov    QWORD PTR [rsp+0x30],rax
0x000007fb369b5eb3 <+211>:    test   rax,rax
0x000007fb369b5eb6 <+214>:    je     0x7fb369b5f42 <toupper+354>
0x000007fb369b5ebc <+220>:    mov    rcx,QWORD PTR [rip+0x88735]        # 0x7fb36a3e5f8 <msvcrt!_wcmdln+16>
0x000007fb369b5ec3 <+227>:    call   0x7fb369b3d14 <msvcrt!_initterm+68>
0x000007fb369b5ec8 <+232>:    mov    rdi,rax
0x000007fb369b5ecb <+235>:    mov    QWORD PTR [rsp+0x20],rax
0x000007fb369b5ed0 <+240>:    mov    r13,rsi
0x000007fb369b5ed3 <+243>:    mov    QWORD PTR [rsp+0x28],rsi
0x000007fb369b5ed8 <+248>:    mov    r15,rax
0x000007fb369b5edb <+251>:    mov    QWORD PTR [rsp+0x38],rax
0x000007fb369b5ee0 <+256>:    sub    rdi,0x8
0x000007fb369b5ee4 <+260>:    mov    QWORD PTR [rsp+0x20],rdi
0x000007fb369b5ee9 <+265>:    cmp    rdi,rsi
0x000007fb369b5eec <+268>:    jb     0x7fb369b5f42 <toupper+354>
0x000007fb369b5eee <+270>:    call   0x7fb369b3d04 <msvcrt!_initterm+52>
0x000007fb369b5ef3 <+275>:    cmp    QWORD PTR [rdi],rax
0x000007fb369b5ef6 <+278>:    je     0x7fb369b5f3f <toupper+351>
0x000007fb369b5ef8 <+280>:    cmp    rdi,rsi
0x000007fb369b5efb <+283>:    jb     0x7fb369b5f42 <toupper+354>
0x000007fb369b5efd <+285>:    mov    rcx,QWORD PTR [rdi]
0x000007fb369b5f00 <+288>:    call   0x7fb369b3d14 <msvcrt!_initterm+68>
0x000007fb369b5f05 <+293>:    mov    rbx,rax
0x000007fb369b5f08 <+296>:    call   0x7fb369b3d04 <msvcrt!_initterm+52>
0x000007fb369b5f0d <+301>:    mov    QWORD PTR [rdi],rax
0x000007fb369b5f10 <+304>:    call   rbx
0x000007fb369b5f12 <+306>:    mov    rcx,QWORD PTR [rip+0x886f7]        # 0x7fb36a3e610 <msvcrt!_wcmdln+40>
0x000007fb369b5f19 <+313>:    call   0x7fb369b3d14 <msvcrt!_initterm+68>
0x000007fb369b5f1e <+318>:    mov    rbx,rax
0x000007fb369b5f21 <+321>:    mov    rcx,QWORD PTR [rip+0x886d0]        # 0x7fb36a3e5f8 <msvcrt!_wcmdln+16>
0x000007fb369b5f28 <+328>:    call   0x7fb369b3d14 <msvcrt!_initterm+68>
0x000007fb369b5f2d <+333>:    cmp    r13,rbx
0x000007fb369b5f30 <+336>:    jne    0x7fb369f0e8b <strncpy+42475>
0x000007fb369b5f36 <+342>:    cmp    r15,rax
0x000007fb369b5f39 <+345>:    jne    0x7fb369f0e8b <strncpy+42475>
0x000007fb369b5f3f <+351>:    jmp    0x7fb369b5ee0 <toupper+256>
0x000007fb369b5f41 <+353>:    int3  
0x000007fb369b5f42 <+354>:    test   r14d,r14d
0x000007fb369b5f45 <+357>:    jne    0x7fb369bf6a9 <msvcrt!longjmp+121>
0x000007fb369b5f4b <+363>:    mov    DWORD PTR [rip+0x8902b],0x1        # 0x7fb36a3ef80 <msvcrt!__lc_collate_cp+4>
0x000007fb369b5f55 <+373>:    mov    ecx,0x8
0x000007fb369b5f5a <+378>:    call   0x7fb369b1870 <msvcrt!_unlock>
0x000007fb369b5f5f <+383>:    mov    ecx,r12d
0x000007fb369b5f62 <+386>:    call   0x7fb369b6118 <msvcrt!_rmtmp+344>
0x000007fb369b5f67 <+391>:    mov    ecx,r12d
0x000007fb369b5f6a <+394>:    call   QWORD PTR [rip+0x954a8]        # 0x7fb36a4b418
0x000007fb369b5f70 <+400>:    int3  
0x000007fb369b5f71 <+401>:    mov    rbx,QWORD PTR [rsp+0x70]
0x000007fb369b5f76 <+406>:    mov    rsi,QWORD PTR [rsp+0x78]
0x000007fb369b5f7b <+411>:    add    rsp,0x40
0x000007fb369b5f7f <+415>:    pop    r15
0x000007fb369b5f81 <+417>:    pop    r14
0x000007fb369b5f83 <+419>:    pop    r13
0x000007fb369b5f85 <+421>:    pop    r12
0x000007fb369b5f87 <+423>:    pop    rdi
0x000007fb369b5f88 <+424>:    ret   
0x000007fb369b5f89 <+425>:    nop
0x000007fb369b5f8a <+426>:    nop
0x000007fb369b5f8b <+427>:    nop
0x000007fb369b5f8c <+428>:    nop
0x000007fb369b5f8d <+429>:    nop
0x000007fb369b5f8e <+430>:    nop
0x000007fb369b5f8f <+431>:    nop
0x000007fb369b5f90 <+432>:    sub    rsp,0x28
0x000007fb369b5f94 <+436>:    call   0x7fb369b5c40 <msvcrt!_flushall>
0x000007fb369b5f99 <+441>:    cmp    BYTE PTR [rip+0x88f58],0x0        # 0x7fb36a3eef8 <msvcrt!_winmajor+24>
0x000007fb369b5fa0 <+448>:    jne    0x7fb369bf6de <msvcrt!longjmp+174>
0x000007fb369b5fa6 <+454>:    mov    rcx,QWORD PTR [rip+0x8889b]        # 0x7fb36a3e848 <msvcrt!_environ+40>
0x000007fb369b5fad <+461>:    add    rsp,0x28
0x000007fb369b5fb1 <+465>:    jmp    0x7fb369b11a0 <msvcrt!free>
0x000007fb369b5fb6 <+470>:    int3  
0x000007fb369b5fb7 <+471>:    nop
0x000007fb369b5fb8 <+472>:    nop
0x000007fb369b5fb9 <+473>:    nop
0x000007fb369b5fba <+474>:    nop
0x000007fb369b5fbb <+475>:    nop
0x000007fb369b5fbc <+476>:    nop
0x000007fb369b5fbd <+477>:    nop
0x000007fb369b5fbe <+478>:    nop
0x000007fb369b5fbf <+479>:    nop


其实我挺好奇的是 跳转到toupper是人为的 还是编译优化的结果
搜索更多相关主题的帖子: color function 
2014-08-25 20:50
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11771
专家分:43421
注 册:2006-5-13
收藏
得分:0 
一时半会看不明白。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-08-26 20:17
快速回复:改天注释一下 先留着
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021621 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved