PC技術(shù)輔導(dǎo):算術(shù)運算指令

字號:

算術(shù)運算指令是反映CPU計算能力的一組指令,也是編程時經(jīng)常使用的一組指令。它包括:加、減、乘、除及其相關(guān)的輔助指令。
    該組指令的操作數(shù)可以是8位、16位和32位(80386+)。當存儲單元是該類指令的操作數(shù)時,該操作數(shù)的尋址方式可以是任意一種存儲單元尋址方式。
    1、加法指令
    、加法指令A(yù)DD(ADD Binary Numbers Instruction)
    指令的格式:ADD Reg/Mem, Reg/Mem/Imm
    受影響的標志位:AF、CF、OF、PF、SF和ZF
    指令的功能是把源操作數(shù)的值加到目的操作數(shù)中。
    、帶進位加指令A(yù)DC(ADD With Carry Instruction)
    指令的格式:ADC Reg/Mem, Reg/Mem/Imm
    受影響的標志位:AF、CF、OF、PF、SF和ZF
    指令的功能是把源操作數(shù)和進位標志位CF的值(0/1)一起加到目的操作數(shù)中。
    、加1指令I(lǐng)NC(Increment by 1 Instruction)
    指令的格式:INC Reg/Mem
    受影響的標志位:AF、OF、PF、SF和ZF,不影響CF
    指令的功能是把操作數(shù)的值加1。
    、交換加指令XADD(Exchange and Add)
    指令的格式:XADD Reg/Mem, Reg      ;80486+
    受影響的標志位:AF、CF、OF、PF、SF和ZF
    指令的功能是先交換兩個操作數(shù)的值,再進行算術(shù)“加”法操作。
    例5.3 已知有二個32位數(shù)d1和d2(用數(shù)據(jù)類型DD說明),編寫程序片段把d2的值加到d1中。
    解:32位數(shù)d1和d2在內(nèi)存中如下所示。
    ……    ……    ……
    方法1:用16位寄存器編寫程序
    MOVAX, word ptr d1;由于d1是雙字類型,必須使用強制類型說明符。以下同。
    MOVDX, word ptr d1+2;(DX,AX)構(gòu)成一個32位數(shù)據(jù)
    ADDAX, word ptr d2;低字相加
    ADCDX, word ptr d2+2;高字相加。在低字相加時,有可能會產(chǎn)生“進位”
    MOVword ptr d1, AX;低字送給d1的低字
    MOVword ptr d1+2, DX;高字送給d1的高字
    方法2:用32位寄存器編寫程序
    MOVEAX, d1
    ADDEAX, d2
    MOVd1, EAX
    從上面兩段程序不難看出:用32位寄存器來處理32位數(shù)據(jù)顯得簡單、明了,而16位微機雖然也能處理32位數(shù)據(jù),但做起來就要復(fù)雜一些。
    下面是學(xué)習和掌握加法類指令的控件,可模擬執(zhí)行ADD、ADC、INC、XADD、CLC、STC和CMC等指令。用鼠標左鍵單擊寄存器列表框中指定的寄存器,則可修改其值。后面其它控件的有關(guān)操作與此相一致,不再說明。