PC技術輔導:匯編減法指令

字號:

減法指令SUB(Subtract Binary Values Instruction)
    指令的格式:SUB Reg/Mem, Reg/Mem/Imm
    受影響的標志位:AF、CF、OF、PF、SF和ZF
    指令的功能是從目的操作數中減去源操作數。
    帶借位減SBB(Subtract with Borrow Instruction)
    指令的格式:SBB Reg/Mem, Reg/Mem/Imm
    受影響的標志位:AF、CF、OF、PF、SF和ZF
    指令的功能是把源操作數和標志位CF的值從目的操作數中一起減去。
    減1指令DEC(Decrement by 1 Instruction)
    指令的格式:DEC Reg/Mem
    受影響的標志位:AF、OF、PF、SF和ZF,不影響CF
    指令的功能是把操作數的值減去1。
    求補指令NEG(Negate Instruction)
    指令的格式:NEG Reg/Mem
    受影響的標志位:AF、CF、OF、PF、SF和ZF
    指令的功能:操作數=0-操作數,即改變操作數的正負號。
    例5.4 已知有二個32位數d1和d2,編寫程序片段從d1中減去d2的值。
    解:
    方法1:用16位寄存器編寫程序
    MOVAX, word ptr d1;取低字
    MOVDX, word ptr d1+2;取高字,(DX,AX)構成一個32位數據
    SUBAX, word ptr d2;低字相減
    SBBDX, word ptr d2+2;高字相減。在低字相減時,有可能會產生“借位”
    MOVword ptr d1, AX;低字送給d1的低字
    MOVword ptr d1+2, DX;高字送給d1的高字
    方法2:用32位寄存器編寫程序
    MOVEAX, d1
    SUBEAX, d2
    MOVd1, EAX
    下面是學習和掌握減法類指令的控件,可模擬執(zhí)行SUB、SBB、DEC、NEG、CLC、STC和CMC等指令。