美文网首页
11-08除法

11-08除法

作者: 五行猫 | 来源:发表于2017-11-10 03:17 被阅读0次

    除数位-2的幂

    和除数是2的幂一样,但是最后多一个neg取反
    定式:

    cdq
    and edx, immA
    add eax, immB
    neg eax

    还原:

    和之前的还原一样,最后加上符号就可以了

    除数为非2的幂

    第一种情况

    **定式:**
    

    mov eax, MagicNumber(> 7fffffffh)
    imul reg
    sar edx, immA
    mov reg, edx
    shr, 1fh
    add edx, reg

    还原:

    利用公式 |o| = 2^n / 2^32 - MagicNumber
    可以得除数的绝对值

    第二种情况

    定式:

    mov eax, MagicNumber( <= 7fffffffh)
    imul reg
    sub edx, reg
    sar edx, immA
    mov reg, edx
    shr reg, 1fh
    add edx, reg

    遇到以上定式代码,MagicNumber为整数,而却乘法和移位中间见到了sub指令来调整,可以判定除数为负,我们可以利用公式还原:

    |o| = 2^n / 2^32 - MagicNumber
    可以得除数的绝对值

    相关文章

      网友评论

          本文标题:11-08除法

          本文链接:https://www.haomeiwen.com/subject/woupmxtx.html