新聞中心

        MSP430匯編指令

        作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
        操作數(shù)位置及執(zhí)行過(guò)程 說(shuō) 狀 態(tài) 位
        代 碼 源操作數(shù)目的操作數(shù) 指令執(zhí)行過(guò)程詳述 VNZC
        ADC[.W]或ADC.B dst dst+C->dst 進(jìn)位C 加至目的操作數(shù)目的操作數(shù)以前的內(nèi)容丟失 ****
        ADD[.W]或ADD.B src,dst src+dst->dst 源操作數(shù)加至目的操作數(shù)源操作數(shù)不受影響目的操作數(shù)以前的內(nèi)容丟失 ****
        ADDC[.W]或ADDC.B src,dst src+dst+C->dst 源操作數(shù)和進(jìn)位C 加至目的操作數(shù)源操作數(shù)不受影響目的操作數(shù)以前的內(nèi)容丟失 ****
        AND[.W]或AND.B src,dst src.and.dst->dst 源操作數(shù)和目的操作數(shù)邏輯與結(jié)果放入目的操作 0***
        BIC[.W]或BIC.B src,dst not.src.and.dst->dst 求反后的源操作數(shù)和目的操作數(shù)邏輯與結(jié)果放入目的操作數(shù)源操作數(shù)不變 ----
        BIS[.W]或BIS.B src,dst src.or.dst->dst 源操作數(shù)和目的操作數(shù)邏輯或 結(jié)果放入目的操作數(shù)源操作數(shù)不變 ----
        BIT[.W]或BIT.B src,dst src.and.dst 源操作數(shù)和目的操作數(shù)邏輯與其結(jié)果只影響狀態(tài)位目的操作數(shù)和源操作數(shù)不變 0***
        BR dst轉(zhuǎn)移到 無(wú)條件轉(zhuǎn)移到64K 地址空間的任一地址處可使用所有的源尋址方式轉(zhuǎn)換指令是一個(gè)字指令 ----
        CALL dstPC+2->堆棧,dst->PC 調(diào)用64K 地址空間中任一地址處的子程序可使用所有的尋址方式返回地址(后續(xù)指令的地址)儲(chǔ)存在堆棧中調(diào)用指令是一個(gè)字指令 ----
        CLR[.W]或CLR.B dst清除目的操作數(shù) 清除目的操作數(shù) ----
        CLRC 清除進(jìn)位位 進(jìn)位位被清零清除進(jìn)位位指令是一個(gè)字指令 ---0
        CLRN 清除負(fù)位 常數(shù)#04H 求反后(0FFFBH)和目的操作數(shù)邏輯與結(jié)果放入目的操作數(shù)清除負(fù)位指令是一個(gè)字指令 -0--
        CLRZ 清除零位 常數(shù)#02H 求反后(0FFFDH)和目的操作數(shù)邏輯與結(jié)果放入目的操作數(shù)清除負(fù)位指令是一個(gè)字指令 --0-
        CMP[.W]或CMP.B dstdst-src 從目的操作數(shù)中減去源操作數(shù)方法是將源操作數(shù)求反再加 1,源操作數(shù)和目的操作數(shù)不受影響不保存結(jié)果只影響狀態(tài)位 ****
        DADC[.W]或DADC.B dst dst+C->dst(十進(jìn)制) 進(jìn)位位C 作為十進(jìn)制加至目的操作數(shù) ****
        DADD[.W]或DADD.B src,dst src+dst+C->dst(十進(jìn)制) 源操作數(shù)和目的操作數(shù)被當(dāng)作4 個(gè)帶有正符號(hào)的二-十進(jìn)制BCD 數(shù)十進(jìn)制的源操作數(shù)和進(jìn)位C 被加至目的操作數(shù)源操作數(shù)不受影響目的操作數(shù)以前的內(nèi)容丟失些結(jié)果對(duì)于非二-十進(jìn)制數(shù)是不確定的 ****
        DEC[.W]或DEC.B dst dst-1->dst 目的操作數(shù)減1 以前的內(nèi)容丟失 ****
        DECD[.W]或DECD.B dst dst-2->dst 目的操作數(shù)減2 以前的內(nèi)容丟失 ****
        DINT 禁止中斷 禁止所有中斷 ----
        EINT 使能中斷 使能所有中斷,常數(shù)08H 與狀態(tài)寄存器SR 邏輯或其結(jié)果放入SR ----
        INC[.W]或INC.B dst dst+1->dst目的操作數(shù)增1 目的操作數(shù)加1 以前的內(nèi)容丟失 ****
        INCD[.W]或INCD.B dst dst+2->dst目的操作數(shù)增2 目的操作數(shù)加2 以前的內(nèi)容丟失 ****
        INV[.W]或INV.B dst目的操作數(shù)求反 目的操作數(shù)取反以前的內(nèi)容丟失 ****
        JC/JHS 標(biāo)號(hào)進(jìn)位位被置時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的進(jìn)位位C 如果它被置則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果C 被復(fù)位則執(zhí)行JUMP 后面的一條指令JC( 有進(jìn)位/大于等于時(shí)跳轉(zhuǎn) )用于比較無(wú)符號(hào)數(shù)(0~65536) ----
        JEQ/JZ 標(biāo)號(hào)零位被置時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的零位Z 如果它被置則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果Z 被復(fù)位則執(zhí)行JUMP 后面的一條指令 ----
        JGE 標(biāo)號(hào)N.xor.V=0時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的負(fù)位N 和溢出位V 如果N 和V 均被置位或復(fù)位則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果其中之一被置位則執(zhí)行JUMP 后面的一條指令該指令允許比較符號(hào)整數(shù) ----
        JL 標(biāo)號(hào)N.xor.V=0時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的負(fù)位N 和溢出位V 如果N 和V 其中之一被置位則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果兩都均被置位或復(fù)位則執(zhí)行JUMP 后面的一條指令該指令允許比較符號(hào)整數(shù) ----
        JMP 標(biāo)號(hào)無(wú)條件轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 指令的LSB中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器 ----
        JN 標(biāo)號(hào)負(fù)位被置時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的負(fù)位N 如果N 被置位則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果N 被復(fù)位則執(zhí)行JUMP 后面的一條指令該指令允許比較符號(hào)整數(shù)狀態(tài)位 不影響狀態(tài)位 ----
        JNC/JLO 標(biāo)號(hào)進(jìn)位位復(fù)位時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的進(jìn)位位C 如果它被復(fù)位則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果C 被置位則執(zhí)行JUMP 后面的一條指令JC( 有進(jìn)位/大于等于時(shí)跳轉(zhuǎn) )用于比較無(wú)符號(hào)數(shù)(0~65536) ----
        JNE/JNZ 標(biāo)號(hào)零位復(fù)位時(shí)轉(zhuǎn)移到標(biāo)號(hào)語(yǔ)句 測(cè)試狀態(tài)寄存器的零位Z 如果它被復(fù)位則指令的LSB 中包含的10 位符號(hào)偏移加至程序計(jì)數(shù)器如果Z 被復(fù)位則執(zhí)行JUMP 后面的一條指令 ----
        MOV[.W]或MOV.B src,dst src->dst 源操作數(shù)被移至目的操作數(shù)源操作數(shù)不變目的操作數(shù)以前的內(nèi)容丟失 ----
        NOP 空操作 此指令可用于在檢查軟件期間仿真指令或用于已確定的等待時(shí)間 ----
        POP[.W]或POP.B dst項(xiàng)目從堆棧彈出,SP+2->SP 堆棧指針(TOS)指向的棧區(qū)字移至目的操作數(shù)隨后堆棧指針加2 ----
        PUSH[.W]或PUSH.B src SP–2->SP,src->@SP 堆棧指針減2 然后源操作數(shù)移至由此指針(TOS)尋址的RAM 字 ----
        RETI TOS->SR SP+2->SP,TOS->PC SP+2->SP (1)狀態(tài)寄存器恢復(fù)到中斷服務(wù)程序開(kāi)始時(shí)的值用TOS 存儲(chǔ)器中的值替換SR 中的當(dāng)前值可做到這一點(diǎn)堆棧指針SP加2
        (2)程序計(jì)數(shù)器恢復(fù)到中斷服務(wù)程序開(kāi)始時(shí)的值這是中斷程序流的后續(xù)步驟用TOS 存儲(chǔ)器中的值替換PC 的當(dāng)前值可實(shí)現(xiàn)這種恢復(fù)堆棧指SP 加1 ----
        RET TOS->SR SP+2->SP 由CALL 指令壓進(jìn)棧的返回地址移至程序計(jì)數(shù)器程序在子程序調(diào)用后的代碼地址處繼續(xù)執(zhí)行 ----
        RLA[.W]或RLA.B dst算術(shù)左移 目的操作數(shù)左移一位MSB成為進(jìn)位位C LSB 填0 RLA 指令可當(dāng)作符號(hào)乘2 在執(zhí)行該操作前如果dst 大于等于04000H 且小于0C000H 則產(chǎn)生溢出結(jié)果會(huì)改變符號(hào) ****
        RLC[.W]或RLC.B dst帶進(jìn)位位左移 目的操作數(shù)左移一位進(jìn)位位C 移入LSB MSB移入進(jìn)位位C ****
        RRA[.W]或RRA.B dst算術(shù)右移 目的操作數(shù)右移一位MSB移入MSB MSB移入MSB – 1 LSB + 1 移入LSB 0***
        RRC[.W]或RRC.B dst帶進(jìn)位位右移 目的操作數(shù)右移一位進(jìn)位位C 移入MSB LSB移入進(jìn)位位C ****
        SBC[.W]或SBC.B dst從目的操作數(shù)減去借位 進(jìn)位C 加到減1 后的目的操作數(shù)目的操作數(shù)原來(lái)的內(nèi)容丟失 ****
        SETC 置進(jìn)位位 進(jìn)位C 被置這是一個(gè)常用的操作 ---1
        SETN 置負(fù)位-1 負(fù)位N 被置 -1--
        SETZ 置零位-1 負(fù)位Z 被置 --1-
        SUB[.W]或SUB.B src,dst dst+.not.src+1->dst 從目的操作數(shù)中減去源操作數(shù)方法是將源操作數(shù)求反再加上常數(shù)1 源操作數(shù)不受影響目的操作數(shù)以前的內(nèi)容丟失 ****
        SUBC[.W]或SUBC.B src,dst dst+.not.src+C->dst 從目的操作數(shù)中減去源操作數(shù)方法是將源操作數(shù)求反再加上進(jìn)位C 源操作數(shù)不受影響目的操作數(shù)以前的內(nèi)容丟失 ****
        SWAP dst交換字節(jié) 目的操作數(shù)的高位字節(jié)和低位字節(jié)互換 ----
        SXT dst dst位7->位8......位150 低位字節(jié)的符號(hào)擴(kuò)展到高位字節(jié) 0***
        TST[.W]或TST.B dst測(cè)試目的操作數(shù) 比較目的操作數(shù)和 0 根據(jù)結(jié)果設(shè)置狀態(tài)位目的操作數(shù)不受影響 0**1
        XOR[.W]或XOR.B src,dst src.xor.dst->dst 源操作數(shù)和目的操作數(shù)異或其結(jié)果放放目的操作數(shù)源操作數(shù)不受影響 ****
        注:
        1、以上指令共51條
        2、狀態(tài)位中“*”表示影響“-”表示不影響“0”表示清零“1”表示置位
        3、含.B的為單字節(jié)操作指令,含[.W]的為雙字節(jié)操作指令(可省略)
        4、src 源操作數(shù),dst目的操作數(shù),TOS堆棧頂部,SR狀態(tài)寄存器,SP堆棧指針


        關(guān)鍵詞: MSP430匯編指

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 漾濞| 丹棱县| 大港区| 江安县| 宁都县| 镇赉县| 宁南县| 朝阳市| 福清市| 榕江县| 武山县| 建宁县| 桂阳县| 郸城县| 始兴县| 高要市| 牟定县| 那坡县| 来宾市| 滕州市| 修文县| 德州市| 怀宁县| 曲周县| 广河县| 白银市| 沾益县| 桓台县| 呼和浩特市| 衡阳县| 阿勒泰市| 华宁县| 福鼎市| 平罗县| 临沭县| 仪陇县| 阳原县| 溧阳市| 宁津县| 莱芜市| 县级市|