4.2.3 SUB指令

 

SUB指令将源操作数从目的操作数中减掉,操作数格式与ADD和MOV指令的操作数相同(参见4.1.4节),指令格式如下:

    SUB目的操作数, 源操作数

下面是一个两个32位整数相减的小例子:

    .data
        var1 DWORD 30000h
        var2 DWORD 10000h
    .code
        mov eax,var1        ;EAX = 30000h
        sub eax,var2        ;EAX = 20000h

有一种执行减法而无须使用额外的数字电路单元的简单方法:对源操作数求补,然后把源操作数和目的操作数相加。例如4-1可看做是4+(-1),对于负数使用补码表示法,因此-1用11111111表示,如下所示:

影响的标志:SUB指令根据目标操作数的值相应修改进位标志、零标志、符号标志、溢出标志、辅助进位标志和奇偶标志。