- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用ARM指令全的
在讲指令之前,先简单地介绍一下 Cortex-M3 中支持的算术与逻辑标志。本书 在后面还会展开论述。它们是:
APSR 中的 5 个标志位
? N: 负数标志(Negative) ? Z: 零结果标志(Zero) ? C: 进位/借位标志(Carry) ?
? V: S: 溢出标志(oVerflow)饱和标志(Saturation),它不做条件转移的依据 4.2.1 分类指令表
表4.2 16位数据操作指令
名字 功能 ADC 带进位加法 ADD 加法 AND 按位与(原文为逻辑与,有误——译注)。这里的按位与和C的””功能相同 ASR 算术右移 BIC 按位清0(把一个数跟另一个无符号数的反码按位与) CMN 负向比较(把一个数跟另一个数据的二进制补码相比较) CMP 比较(比较两个数并且更新标志) CPY 把一个寄存器的值拷贝到另一个寄存器中 EOR 近位异或 LSL 逻辑左移(如无其它说明,所有移位操作都可以一次移动最多31格——译注) LSR 逻辑右移 MOV 寄存器加载数据,既能用于寄存器间的传输,也能用于加载立即数 MUL 乘法 MVN 加载一个数的NOT 值(取到逻辑反的值) NEG 取二进制补码 ORR 按位或(原文为逻辑或,有误——译注) ROR 圆圈右移 SBC 带借位的减法 SUB 减法 TST 测试(执行按位与操作,并且根据结果更新Z) REV 在一个32 位寄存器中反转字节序 REVH 把一个32 位寄存器分成两个16 位数,在每个16 位数中反转字节序 REVSH 把一个32 位寄存器的低16 位半字进行字节反转,然后带符号扩展到32 位 SXTB 带符号扩展一个字节到32 位 SXTH 带符号扩展一个半字到32 位 UXTB 无符号扩展一个字节到32 位 UXTH 无符号扩展一个半字到32 位
表4.3 16位转移指令
名字 功能 B 无条件转移 Bcond 条件转移 BL 转移并连接。用于呼叫一个子程序,返回地址被存储在LR 中 BLX #im 使用立即数的BLX不要在CM3 中使用 CBZ 比较,如果结果为0 就转移(只能跳到后面的指令——译注) CBNZ 比较,如果结果非0 就转移(只能跳到后面的指令——译注) IT If-Then
表4.4 16位存储器数据传送指令
名字 功能 LDR 从存储器中加载字到一个寄存器中 LDRH 从存储器中加载半字到一个寄存器中 LDRB 从存储器中加载字节到一个寄存器中 LDRSH 从存储器中加载半字,再经过带符号扩展后存储一个寄存器中 LDRSB 从存储器中加载字节,再经过带符号扩展后存储一个寄存器中 STR 把一个寄存器按字存储到存储器中 STRH 把一个寄存器存器的低半字存储到存储器中 STRB 把一个寄存器的低字节存储到存储器中 LDMIA 加载多个字,并且在加载后自增基址寄存器 STMIA 存储多个字,并且在存储后自增基址寄存器 PUSH 压入多个寄存器到栈中 POP 从栈中弹出多个值到寄存器中 16 数据传送指令没有任何新内容,因为它们是Thumb 指令,在v4T 时就已经定格了——译注
表4.5 其它16位指令
名字 功能 SVC 系统服务调用 BKPT 断点指令。如果使能了调试,则进入调试状态(停机)。否则的话产生调试监视器异常。在调试监视器异常被使能时,调用其服务例程;如果连调试监视器异常也被除能, 则无奈下只好诉诸于一个fault 异常 NOP 无操作 CPSIE 使能PRIMASK(CPSIE i)/ FAULTMASK(CPSIE f)——清0 相应的位 CPSID 除能PRIMASK(CPSID i)/ FAULTMASK(CPSID f)——置位相应的位 表4.6 32位数据操作指令
名字 功能 ADC 带进位加法 ADD 加法 ADDW 宽加法(可以加12 位立即数) AND 按位与(原文是逻辑与,有误。对应C 言的“|”运算符——译注) ASR 算术右移 BIC 位清零(把一个数按位取反后,与另一个数逻辑与) BFC 位段清零 BFI 位段插入
CMN 负向比较(把一个数和另一个数的二进制补码比较,并更新标志位) CMP 比较两个数并更新标志位 CLZ 计算前导零的数目 EOR 按位异或 LSL 逻辑左移 LSR 逻辑右移 MLA 乘加 MLS 乘减 MOVW 把16 位立即数放到寄存器的低16 位,高16 位清0 MOV 加载16 位立即数到寄存器(其实汇编器会产生MOVW——译注) MOVT 把16 位立即数放到寄存器的高16 位,低16 位不影响 MVN 移
您可能关注的文档
最近下载
- 辽宁省社区工作者招聘笔试真题.pdf VIP
- 2_H3G-TA硬件安装调试手册(CM-02N)B2版(对外公开)华塑电池巡检仪.pdf VIP
- 超实用高考英语复习:阅读理解话题分类专练 文娱与体(含答案).docx VIP
- 民航法律法规教案【参考】.doc VIP
- 实验室生物安全管理手册(2025版).pdf VIP
- 名著导读(朝花夕拾).ppt VIP
- 民航法律法规与实务(全套课件).ppt
- 服装包装、配送、检验、验收及售后服务方案.docx VIP
- 高中英语人教版选择性必修第一册词汇表单词英译汉默写.docx VIP
- 2025年辽宁省锦州市北镇市观音阁街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
文档评论(0)