- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM3汇编指令
16位数据操作指令?名字 功能ADC? 带进位加法(ADD with Carry)?ADD? 加法?AND? 按位与。这里的按位与和C的””功能相同?ASR? 算术右移(Arithmetic Shift Right)?BIC? 按位清零(把一个数跟另一个无符号数的反码按位与)?CMN? 负向比较(把一个数跟另一个数据的二进制补码相比较)?CMP? 比较(Compare,比较两个数并且更新标志)?CPY? 把一个寄存器的值拷贝(COPY)到另一个寄存器中?EOR? 近位异或?LSL? 逻辑左移(Logic Shift Left)?LSR? 逻辑右移(Logic Shift Right)?MOV? 寄存器加载数据,既能用于寄存器间的传输,也能用于加载立即数?MUL? 乘法(Multiplication)MVN? 加载一个数的 NOT值(取到逻辑反的值)NEG? 取二进制补码ORR? 按位或ROR? 循环右移SBC? 带借位的减法SUB? 减法(Subtraction)TST??测试(Test,执行按位与操作,并且根据结果更新Z)REV? 在一个32位寄存器中反转(Reverse)字节序REVH? 把一个32位寄存器分成两个(Half)16位数,在每个16位数中反转字节序REVSH? 把一个32位寄存器的低16位半字进行字节反转,然后带符号扩展到32位SXTB? 带符号(Signed)扩展一个字节(Byte)到 32位SXTH? 带符号(Signed)扩展一个半字(Half)到 32位UXTB? 无符号(Unsigned)扩展一个字节(Byte)到 32位UXTH? 无符号(Unsigned)扩展一个半字(Half)到 32位16位转移指令?名字 功能B? 无条件转移(Branch)Bcond? 有条件(Condition)转移BL? 转移并连接(Link)。用于呼叫一个子程序,返回地址被存储在LR中CBZ? 比较(Compare),如果结果为零(Zero)就转移(只能跳到后面的指令)CBNZ? 比较,如果结果非零(Non Zero)就转移(只能跳到后面的指令)IT? If-Then16位存储器数据传送指令?名字 功能LDR? 从存储器中加载(Load)字到一个寄存器(Register)中LDRH? 从存储器中加载半(Half)字到一个寄存器中LDRB? 从存储器中加载字节(Byte)到一个寄存器中LDRSH? 从存储器中加载半字,再经过带符号扩展后存储一个寄存器中LDRSB? 从存储器中加载字节,再经过带符号扩展后存储一个寄存器中STR? 把一个寄存器按字存储(Store)到存储器中STRH? 把一个寄存器存器的低半字存储到存储器中STRB? 把一个寄存器的低字节存储到存储器中LDMIA? 加载多个字,并且在加载后自增基址寄存器STMIA? 存储多个字,并且在存储后自增基址寄存器PUSH? 压入多个寄存器到栈中POP? 从栈中弹出多个值到寄存器中其它16位指令?名字 功能SVC? 系统服务调用(Service Call)BKPT? 断点(Break Point)指令。如果调试被使能,则进入调试状态(停机)。NOP? 无操作(No Operation)CPSIE? 使能 PRIMASK(CPSIE i)/FAULTMASK(CPSIE f)——清零相应的位CPSID? 除能 PRIMASK(CPSID i)/FAULTMASK(CPSID f)——置位相应的位32位数据操作指令名字 功能ADC? 带进位加法ADD? 加法ADDW? 宽加法(可以加 12 位立即数)AND? 按位与(原文是逻辑与,有误——译注)ASR? 算术右移BIC? 位清零(把一个数按位取反后,与另一个数逻辑与)BFC? 位段清零BFI? 位段插入CMN? 负向比较(把一个数和另一个数的二进制补码比较,并更新标志位)CMP? 比较两个数并更新标志位CLZ? 计算前导零的数目EOR? 按位异或LSL? 逻辑左移LSR? 逻辑右移MLA? 乘加MLS? 乘减MOVW? 把 16 位立即数放到寄存器的底16位,高16位清0MOV? 加载16位立即数到寄存器(其实汇编器会产生MOVW——译注)MOVT? 把 16 位立即数放到寄存器的高16位,低 16位不影响MVN? 移动一个数的补码MUL? 乘法ORR? 按位或(原文为逻辑或,有误——译注)ORN? 把源操作数按位取反后,再执行按位或(原文为逻辑或,有误——译注)RBIT? 位反转(把一个 32 位整数先用2 进制表达,再旋转180度——译注)REV? 对一个32 位整数做按字节反转REVH/REV16 对一个32 位整数的高低半字都执行字节反转REVSH? 对一个32 位整数的低半字执行字节反转,再带符号扩展成32位
文档评论(0)