欢迎来到天天文库
浏览记录
ID:33904933
大小:584.00 KB
页数:6页
时间:2019-03-01
《arm指令全称及功能》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、指令格式:指令{条件}{S}{目的Register},{OP1},{OP2}"{}"中的内容可选。即,可以不带条件只有目的寄存器,或只有目的寄存器和操作数1,也可以同时包含所有选项。“S”决定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值助记符英文全称示例、功能跳转指令BBranch跳转指令BLabel;程序无条件跳转到标号Label处执行BLBranchwithLink带返回的跳转指令BLLabel;当程序无条件跳转到标号Label处执行时,同时将当前的PC值保存到R14中BLXBranchwithLinkandexchange
2、带返回和状态切换的跳转指令BLXLabel;从ARM指令集跳转到指令中所指定的目标地址,并将处理器的工作状态有ARM状态切换到Thumb状态,该指令同时将PC的当前内容保存到寄存器R14中BXBranchandexchange带状态切换的跳转指令BXLabel;跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令数据处理MOVMove数据传送MOVR1,R0,LSL#3;将寄存器R0的值左移3位后传送到R1MVNMoveNOT数据非传送MVNR0,#0;将立即数0取反传送到寄存器R0中,完成后R0=-1CMPCompare比较指令CMP
3、R1,R0;将寄存器R1的值与寄存器R0的值相减,并根据结果设置CPSR的标志位CMNComparenegative负数比较指令CMNR1,R0;将寄存器R1的值与寄存器R0的值相加,并根据结果设置CPSR的标志位TSTTest位测试指令TSTR1,#0xffe;将寄存器R1的值与立即数0xffe按位与,并根据结果设置CPSR的标志位TEQTestequivalence相等测试指令TEQR1,R2;将寄存器R1的值与寄存器R2的值按位异或,并根据结果设置CPSR的标志位ADDAdd加法运算指令ADDR0,R2,R3,LSL#1;R0=R2+(R3<<1)ADCAddwit
4、hcarry带进位加法ADCSR2,R6,R10;R2=R6+R10+!C,且更新CPSR的进位标志位SUBSubtract减法运算指令SUBR0,R1,#256;R0=R1–256SBCSubtractwithcarry带进位减法指令SUBSR0,R1,R2;R0=R1-R2-!C,并根据结果设置CPSR的进位标志位RSBReversesubtract逆向减法指令RSBR0,R1,R2;R0=R2–R1RSCReversesubtractwithcarry带进位逆向减法指令RSCR0,R1,R2;R0=R2–R1-!CANDAnd逻辑与操作指令ANDR0,R0,#3;该
5、指令保持R0的0、1位,其余位清零。ORROR逻辑或操作指令ORRR0,R0,#3;该指令设置R0的0、1位,其余位保持不变。EORExclusiveOR逻辑异或操作指令EORR0,R0,#3;该指令反转R0的0、1位,其余位保持不变。BICBitclear位清除指令BICR0,R0,#0b1011;该指令清除R0中的位0、1、和3,其余的位保持不变。CLZCountleftzero计算操作数最高端0的个数乘加指令MULMultiply32位乘法指令MULR0,R1,R2;R0=R1×R2MLAMultiplyandaccumulate32位乘加指令MLASR0,R1,R
6、2,R3;R0=R1×R2+R3,同时设置CPSR中的相关条件标志位SMULLSignedmultiplylong64位有符号数乘法指令SMULLR0,R1,R2,R3;R0=(R2×R3)的低32位R1=(R2×R3)的高32位SMLALSignedmullandaccumulatel64位有符号数乘加指令SMLALR0,R1,R2,R3;R0=(R2×R3)的低32位+R0;R1=(R2×R3)的高32位+R1UMULLUnsignedmultiplylong64位无符号数乘法指令UMULLR0,R1,R2,R3;R0=(R2×R3)的低32位;R1=(R2×R3)的
7、高32位UMLALUnsignedmul&accumulatelon64位无符号数乘法指令UMLALR0,R1,R2,R3;R0=(R2×R3)的低位+R0;R1=(R2×R3)的高32位+R1PSR访问MRSMovePSRtoregister程序状态寄存器到通用寄存器的数据传送指令MRSR0,CPSR;传送CPSR的内容到R0MSRMoveregistertoPSR通用寄存器到程序状态寄存器的数据传送指令MSRCPSR_c,R0;传送R0的内容到SPSR,但仅仅修改CPSR中的控制位域加载/存储指令LDRLoadword字数
此文档下载收益归作者所有