資源描述:
《arm指令全稱及功能》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、指令格式:指令{條件}{S}{目的Register},{OP1},{OP2}"{}"中的內(nèi)容可選。即,可以不帶條件只有目的寄存器,或只有目的寄存器和操作數(shù)1,也可以同時(shí)包含所有選項(xiàng)。“S”決定指令的操作是否影響CPSR中條件標(biāo)志位的值,當(dāng)沒(méi)有S時(shí)指令不更新CPSR中條件標(biāo)志位的值助記符英文全稱示例、功能跳轉(zhuǎn)指令BBranch跳轉(zhuǎn)指令BLabel;程序無(wú)條件跳轉(zhuǎn)到標(biāo)號(hào)Label處執(zhí)行BLBranchwithLink帶返回的跳轉(zhuǎn)指令BLLabel;當(dāng)程序無(wú)條件跳轉(zhuǎn)到標(biāo)號(hào)Label處執(zhí)行時(shí),同時(shí)將當(dāng)前的PC值保存到R14中BLXBranchwithLinkandexchange
2、帶返回和狀態(tài)切換的跳轉(zhuǎn)指令BLXLabel;從ARM指令集跳轉(zhuǎn)到指令中所指定的目標(biāo)地址,并將處理器的工作狀態(tài)有ARM狀態(tài)切換到Thumb狀態(tài),該指令同時(shí)將PC的當(dāng)前內(nèi)容保存到寄存器R14中BXBranchandexchange帶狀態(tài)切換的跳轉(zhuǎn)指令BXLabel;跳轉(zhuǎn)到指令中所指定的目標(biāo)地址,目標(biāo)地址處的指令既可以是ARM指令,也可以是Thumb指令數(shù)據(jù)處理MOVMove數(shù)據(jù)傳送MOVR1,R0,LSL#3;將寄存器R0的值左移3位后傳送到R1MVNMoveNOT數(shù)據(jù)非傳送MVNR0,#0;將立即數(shù)0取反傳送到寄存器R0中,完成后R0=-1CMPCompare比較指令CMP
3、R1,R0;將寄存器R1的值與寄存器R0的值相減,并根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位CMNComparenegative負(fù)數(shù)比較指令CMNR1,R0;將寄存器R1的值與寄存器R0的值相加,并根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位TSTTest位測(cè)試指令TSTR1,#0xffe;將寄存器R1的值與立即數(shù)0xffe按位與,并根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位TEQTestequivalence相等測(cè)試指令TEQR1,R2;將寄存器R1的值與寄存器R2的值按位異或,并根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位ADDAdd加法運(yùn)算指令A(yù)DDR0,R2,R3,LSL#1;R0=R2+(R3<<1)ADCAddwit
4、hcarry帶進(jìn)位加法ADCSR2,R6,R10;R2=R6+R10+!C,且更新CPSR的進(jìn)位標(biāo)志位SUBSubtract減法運(yùn)算指令SUBR0,R1,#256;R0=R1–256SBCSubtractwithcarry帶進(jìn)位減法指令SUBSR0,R1,R2;R0=R1-R2-!C,并根據(jù)結(jié)果設(shè)置CPSR的進(jìn)位標(biāo)志位RSBReversesubtract逆向減法指令RSBR0,R1,R2;R0=R2–R1RSCReversesubtractwithcarry帶進(jìn)位逆向減法指令RSCR0,R1,R2;R0=R2–R1-!CANDAnd邏輯與操作指令A(yù)NDR0,R0,#3;該
5、指令保持R0的0、1位,其余位清零。ORROR邏輯或操作指令ORRR0,R0,#3;該指令設(shè)置R0的0、1位,其余位保持不變。EORExclusiveOR邏輯異或操作指令EORR0,R0,#3;該指令反轉(zhuǎn)R0的0、1位,其余位保持不變。BICBitclear位清除指令BICR0,R0,#0b1011;該指令清除R0中的位0、1、和3,其余的位保持不變。CLZCountleftzero計(jì)算操作數(shù)最高端0的個(gè)數(shù)乘加指令MULMultiply32位乘法指令MULR0,R1,R2;R0=R1×R2MLAMultiplyandaccumulate32位乘加指令MLASR0,R1,R
6、2,R3;R0=R1×R2+R3,同時(shí)設(shè)置CPSR中的相關(guān)條件標(biāo)志位SMULLSignedmultiplylong64位有符號(hào)數(shù)乘法指令SMULLR0,R1,R2,R3;R0=(R2×R3)的低32位R1=(R2×R3)的高32位SMLALSignedmullandaccumulatel64位有符號(hào)數(shù)乘加指令SMLALR0,R1,R2,R3;R0=(R2×R3)的低32位+R0;R1=(R2×R3)的高32位+R1UMULLUnsignedmultiplylong64位無(wú)符號(hào)數(shù)乘法指令UMULLR0,R1,R2,R3;R0=(R2×R3)的低32位;R1=(R2×R3)的
7、高32位UMLALUnsignedmul&accumulatelon64位無(wú)符號(hào)數(shù)乘法指令UMLALR0,R1,R2,R3;R0=(R2×R3)的低位+R0;R1=(R2×R3)的高32位+R1PSR訪問(wèn)MRSMovePSRtoregister程序狀態(tài)寄存器到通用寄存器的數(shù)據(jù)傳送指令MRSR0,CPSR;傳送CPSR的內(nèi)容到R0MSRMoveregistertoPSR通用寄存器到程序狀態(tài)寄存器的數(shù)據(jù)傳送指令MSRCPSR_c,R0;傳送R0的內(nèi)容到SPSR,但僅僅修改CPSR中的控制位域加載/存儲(chǔ)指令LDRLoadword字?jǐn)?shù)