ARM指令全称及功能.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

指令格式:指令{条件}{S}{目的Register},{OP1},{OP2}

{}中的内容可选。即,可以不带条件只有目的存放器,或

只有目的存放器和操作数1,也可以同时包含所有选项。“S”决定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值

助记符

英文全称

例如、功能

B

Branch

跳转指令

BLabel ;程序无条件跳转到标号Label处执行

BL

BranchwithLink

带返回的跳转指令

BLLabel;当程序无条件跳转到标号Label处执行时,同时将当前的PC值保存到R14中

BLX

BranchwithLinkandexchange带返回和状态切换的跳转指令

BLXLabel;从ARM指令集跳转到指令中所指定的目标地址,并将处理器的工作状态有ARM状态切换到Thumb状态,该指令同时将PC的当前内容保存到存放器R14中

BX

Branchandexchange

带状态切换的跳转指令

BXLabel;跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令

MOV

Move

数据传送

MOVR1,R0,LSL#3;将存放器R0的值左移3位后传送到R1

MVN

MoveNOT

数据非传送

MVNR0,#0;将立即数0取反传送到存放器R0中,完成后R0=-1

CMP

Compare

比拟指令

CMPR1,R0 ;将存放器R1的值与存放器R0的值相减,并根据结果设置CPSR的标志位

CMN

Comparenegative

负数比拟指令

CMNR1,R0 ;将存放器R1的值与存放器R0的值相加,并根据结果设置CPSR的标志位

TST

Test

位测试指令

TST R1,#0xffe ;将存放器R1的值与立即数0xffe按位与,并根据结果设置CPSR的标志位

TEQ

Testequivalence

相等测试指令

TEQ R1,R2 ;将存放器R1的值与存放器R2的值按位异或,并根据结果设置CPSR的标志位

ADD

Add

加法运算指令

ADDR0,R2,R3,LSL#1 ;R0=R2+(R31)

ADC

Addwithcarry

带进位加法

ADCS R2,R6,R10;R2=R6+R10+!C,且更新CPSR的进位标志位

SUB

Subtract

减法运算指令

SUBR0,R1,#256 ;R0=R1–256

SBC

Subtractwithcarry

带进位减法指令

SUBSR0,R1,R2;R0=R1-R2-!C,并根据结果设置CPSR的进位标志位

RSB

Reversesubtract

逆向减法指令

RSBR0,R1,R2;R0=R2–R1

RSC

Reversesubtractwithcarry

带进位逆向减法指令

RSCR0,R1,R2 ;R0=R2–R1-!C

AND

And

逻辑与操作指令

ANDR0,R0,#3;该指令保持R0的0、1位,其余位清零。

ORR

OR

逻辑或操作指令

ORRR0,R0,#3;该指令设置R0的0、1位,其余位保持不变。

EOR

ExclusiveOR

逻辑异或操作指令

EORR0,R0,#3;该指令反转R0的0、1位,其余位保持不变。

BIC

Bitclear

位去除指令

BICR0,R0,#0b1011;该指令去除R0中的位0、1、和3,其余的位保持不变。

CLZ

Countleftzero

计算操作数最高端0的个数

MUL

Multiply

32位乘法指令

MULR0,R1,R2 ;R0=R1×R2

MLA

Multiplyandaccumulate

32位乘加指令

MLASR0,R1,R2,R3;R0=R1×R2+R3,同时设置CPSR中的相关条件标志位

SMULL

Signedmultiplylong

64位有符号数乘法指令

SMULL R0,R1,R2,R3 ;R0=〔R2×R3〕的低32位R1=〔R2×R3〕的高32位

SMLAL

Signedmullandaccumulatel

64位有符号数乘加指令

SMLAL R0,R1,R2,R3 ;R0=〔R2×R3〕的低32位+R0;R1=〔R2×R3〕的高32位+R1

UMULL

Unsignedmultiplylong

64位无符号数乘法指令

UMULL R0,R1,R2,R3 ;R0=〔R2

文档评论(0)

199****8042 + 关注
实名认证
文档贡献者

相信自己,相信明天

1亿VIP精品文档

相关文档