关于学习汇编的一些规则的理解(div mul cf of)

Posted 夏风微凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于学习汇编的一些规则的理解(div mul cf of)相关的知识,希望对你有一定的参考价值。

->1.div(除法)  被除数/除数

  ->一共有三种格式的除法,分别是8位,16位,32位,这里的位数表示的是除数的位数

  ->实现div其实也很简单就是除数为被除数的一半就ok

  ->需要注意的就是ax和dx这两个寄存器,因为mul(乘法)和div(除法)和这两个寄存器紧密相连

  ->相关关系如下,需要记住的就是这个格式dx:ax 就是dx永远为高位,ax永远为低位,这个在mul中也同样适用

    被除数 除数                商 余数
    ax 8位寄存器/8位内存操作数       al ah
    dx:ax 16位寄存器/16位内存操作数      ax dx
    edx:eax 32位寄存器/32位内存操作数   eax edx

->2.mul(乘法)

  ->乘法就很简单了,因为不存在商和余数的问题

  ->规则如下:     

        被乘数 乘数 积
        al 8位操作数 ax
        ax 16位操作数 dx:ax
        eax 32位操作数 edx:eax

->3.cf(借位标志位)

  ->也就是当你进行加法/减法时,向虚拟位借位,cf 置1,否则为0

    eg.

      mov al,90

      add al,200

    上面的例子就会发生进位,因为al 为8位范围为0-255  而他们相加为290>255所以cf置1,在这里是当作无符号位计算的

->4.of(溢出标志位)

  ->也就是在进行有符号位进行算法时,数据发生溢出,因为是有符号位所以他的表示范围为-128-127(10000000-01111111)

  

 

以上是关于关于学习汇编的一些规则的理解(div mul cf of)的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向x86 汇编 ( add / sub / mul / div 数值运算指令 | xor / not / sal / sar / shl / shr 位运算指令 )

Android 逆向x86 汇编 ( add / sub / mul / div 数值运算指令 | xor / not / sal / sar / shl / shr 位运算指令 )

汇编--算术运算类指令

帮助理解 x86 内联汇编中的 DIV 指令

汇编

本人想学习破解技术但是看不懂反汇编代码!求助!!