arm指令个人总结_

arm指令个人总结_

ID:18825131

大小:145.50 KB

页数:8页

时间:2018-09-25

arm指令个人总结__第1页
arm指令个人总结__第2页
arm指令个人总结__第3页
arm指令个人总结__第4页
arm指令个人总结__第5页
资源描述:

《arm指令个人总结_》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ARM指令及功能描述满光明2006-3-18于电子科技大学指令格式:指令{条件}{S}{目的Register},{OP1},{OP2}"{}"中的内容可选。即,可以不带条件只有目的寄存器,或只有目的寄存器和操作数1,也可以同时包含所有选项。“S”决定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值助记符英文全称示例、功能跳转指令BBranchBLabel;程序无条件跳转到标号Label处执行BLBranchwithLinkBLLabel;当程序无条件跳转到标号Label处执行

2、时,同时将当前的PC值保存到R14中数据处理BLXBranchwithLinkandexchangeBLXLabel;从ARM指令集跳转到指令中所指定的目标地址,并将处理器的工作状态有ARM状态切换到Thumb状态,该指令同时将PC的当前内容保存到寄存器R14中BXBranchandexchangeBXLabel;跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令MOVMoveMOVR1,R0,LSL#3;将寄存器R0的值左移3位后传送到R1MVNMoveNOTMVNR0,#0

3、;将立即数0取反传送到寄存器R0中,完成后R0=-1CMPCompareCMPR1,R0;将寄存器R1的值与寄存器R0的值相减,并根据结果设置CPSR的标志位CMNComparenegativeCMNR1,R0;将寄存器R1的值与寄存器R0的值相加,并根据结果设置CPSR的标志位TSTTestTSTR1,#0xffe;将寄存器R1的值与立即数0xffe按位与,并根据结果设置CPSR的标志位ADCAddwithcarryADCSR2,R6,R10;R2=R6+R10+!C,且更新CPSR的进位标志位SUBSubtra

4、ctSUBR0,R1,#256;R0=R1–256SBCSubtractwithcarrySUBSR0,R1,R2;R0=R1-R2-!C,并根据结果设置CPSR的进位标志位RSBReversesubtractRSBR0,R1,R2;R0=R2–R1RSCReversesubtractwithcarryRSCR0,R1,R2;R0=R2–R1-!C8ANDAndANDR0,R0,#3;该指令保持R0的0、1位,其余位清零。ORRORORRR0,R0,#3;该指令设置R0的0、1位,其余位保持不变。EORExclus

5、iveOREORR0,R0,#3;该指令反转R0的0、1位,其余位保持不变。BICBitclearBICR0,R0,#0b1011;该指令清除R0中的位0、1、和3,其余的位保持不变。CLZCountleftzero计算操作数最高端0的个数乘加指令MULMultiplyMULR0,R1,R2;R0=R1×R2MLAMultiplyandaccumulateMLASR0,R1,R2,R3;R0=R1×R2+R3,同时设置CPSR中的相关条件标志位SMULLSignedmultiplylongSMULLR0,R1,R2

6、,R3;R0=(R2×R3)的低32位R1=(R2×R3)的高32位SMLALSignedmullandaccumulatelSMLALR0,R1,R2,R3;R0=(R2×R3)的低32位+R0;R1=(R2×R3)的高32位+R1UMULLUnsignedmultiplylongUMULLR0,R1,R2,R3;R0=(R2×R3)的低32位;R1=(R2×R3)的高32位UMLALUnsignedmul&accumulatelonUMLALR0,R1,R2,R3;R0=(R2×R3)的低位+R0;R1=(R2

7、×R3)的高32位+R1PSR访问MRSMovePSRtoregisterMRSR0,CPSR;传送CPSR的内容到R0MSRMoveregistertoPSRMSRCPSR_c,R0;传送R0的内容到SPSR,但仅仅修改CPSR中的控制位域加载/存储指令LDRLoadwordLDRR0,[R1,R2]!;将存储器地址为R1+R2的字数据读入R0,并将新地址R1+R2写入R1。LDRBLoadbyteLDRBR0,[R1,#8];将存储器地址为R1+8的字节数据读入R0,并将R0的高24位清零LDRHLoadhal

8、fwordLDRHR0,[R1];将存储器地址为R1的半字数据读入寄存器R0,并将R0的高16位清零LDMLoadmultipleLDMFDR13!,{R0,R4-R12,PC};将堆栈内容恢复到寄存器(R0,R4到R12,LR)STRStoreSTRR0,[R1],#8;将R0中的字数据写入R1为地址的存储器中,并将新地址R1+8写入R1STRBStore

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。