飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3032|回复: 2

[求助] 《加密与解密(三版)》疑惑,关于左移

[复制链接]

该用户从未签到

发表于 2009-11-7 22:09:58 | 显示全部楼层 |阅读模式
书中有一段代码是这样的
  1. 004013D8    /$  33C0            xor eax,eax                                ;  清零
  2. 004013DA    |.  33FF            xor edi,edi                                ;  清零
  3. 004013DC    |.  33DB            xor ebx,ebx                                ;  清零
  4. 004013DE    |.  8B7424 04       mov esi,dword ptr ss:[esp+4]               ;  指向序列号
  5. 004013E2    |>  B0 0A           /mov al,0A                                 ;  al=10
  6. 004013E4    |.  8A1E            |mov bl,byte ptr ds:[esi]                  ;  取序列号到bl
  7. 004013E6    |.  84DB            |test bl,bl                                ;  是否取完
  8. 004013E8    |.  74 0B           |je short serial.004013F5                  ;  取完结束
  9. 004013EA    |.  80EB 30         |sub bl,30                                 ;  ebx=ebx-30h
  10. 004013ED    |.  0FAFF8          |imul edi,eax                              ;  edi=edi*10,实际上是左移一位
  11. 004013F0    |.  03FB            |add edi,ebx                               ;  edi=edi+ebx=edi+[code(i)-30h]
  12. 004013F2    |.  46              |inc esi                                   ;  下一位
  13. 004013F3    |.^ EB ED           \jmp short serial.004013E2
  14. 004013F5    |>  81F7 34120000   xor edi,1234
  15. 004013FB    |.  8BDF            mov ebx,edi
  16. 004013FD    \.  C3              retn

复制代码
我不明白的是004013ED一行,书中为什么说edi*10实际上是左移一位。。左移一位不是相当于乘2吗?希望有人解答一下。。说实话,对左移右移不是太了解。。。
PYG19周年生日快乐!

该用户从未签到

发表于 2009-11-9 14:12:12 | 显示全部楼层
对不起,非常抱歉  刚才没看代码信口胡言/:022
对于程序  没看出edi的作用。。。。

可否给说下书中具体位置  我也想搞清楚 谢谢

[ 本帖最后由 kings0527 于 2009-11-9 14:36 编辑 ]
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-29 07:52
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-11-20 15:33:33 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表