1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM指令集详解课件

ARM指令集详解 ARM指令集分类 数据处理指令 Load/Store指令 状态寄存器操作指令 转移指令 软中断指令 协处理器指令 数据处理和逻辑指令 主要指加法、减法、乘法、移位、比较、测试、传送、逻辑指令。 ADD、ADC SUB、SBC、RSB、RSC MUL、UMULL、UMLAL、SMULL、SMLAL LSL、LSR、ASL、ASR、ROR、RRX CMP、CMN TEQ、TST MOV、MVN 数据处理指令-ADD ADD{条件}{S} Rd, Rn, op 2 Rd= Rn + op_2 ADD 将把两个操作数加起来,把结果放置到目的寄存器中。操作数 Rn 是一个寄存器,操作数 op 2可以是一个寄存器,被移位的寄存器,或一个立即值: ADDS R0, R1, R2 ; R0 = R1 + R2 影响标志位 ADD R0, R1, #256 ; R0 = R1 + 256 ADD R0, R2, R3,LSL #1 ; R0 = R2 + (R3 1) 数据处理指令--ADC ADC{条件}{S} Rd, Rn, op 2 Rd = Rn + op_2 + carry ADC 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,可以做比 32 位大的加法。下列例子将加两个 128 位的数。 128 位结果: 寄存器 0、1、2、和 3 第一个 128 位数: 寄存器 4、5、6、和 7 第二个 128 位数: 寄存器 8、9、10、和 11。 ADDS R0, R4, R8 ; 加低端的字 ADCS R1, R5, R9 ; 加下一个字,带进位 ADCS R2, R6, R10 ; 加第三个字,带进位 ADCS R3, R7, R11 ; 加高端的字,带进位 如果要做这样的加法,不要忘记设置 S 后缀来更改进位标志。 数据处理指令--SUB SUB{条件}{S} Rd, Rn, op_2 Rd= Rn - op_2 用操作数 Rn减去操作数 op_2,把结果放置到目的寄存器中。操作数 Rn 是一个寄存器,操作数 op_2 可以是一个寄存器,被移位的寄存器,或一个立即值: SUBS R0, R1, R2 ; R0 = R1 - R2 ,影响标志位 SUB R0, R1, #256 ; R0 = R1 - 256 SUB R0, R2, R3,LSL #1 ; R0 = R2 - (R3 1) 数据处理指令--SBC SBC : 带借位的减法 SBC{条件}{S} Rd, Rn, op_2 Rd = Rn - op_2 - !carry SBC 做两个操作数的减法,把结果放置到目的寄存器中。它使用进位标志来表示借位,这样就可以做大于 32 位的减法。SUB 和 SBC 生成进位标志的方式不同于常规,如果需要借位则清除进位标志。所以,指令要对进位标志进行一个非操作 - 在指令执行期间自动的反转此位。 SUBS R3,R6,R9 SBCS R4,R7,R10 SBC R5,R8,R11 数据处理指令--RSB RSB : 反向减法 RSB{条件}{S} Rd, Rn, op_2 Rd = op_2 - op_1 用操作数 op_2减去操作数 Rn ,把结果放置到目的寄存器中。操作数 Rn 是一个寄存器,操作数 op_2可以是一个寄存器,被移位的寄存器,或一个立即值: RSB R0, R1, R2 ; R0 = R2 - R1 RSB R0, R1, #256 ; R0 = 256 - R1 RSB R0, R2, R3,LSL #1 ; R0 = (R3 1) - R2 数据处理指令--RSC RSC : 带借位的反向减法 RSC{条件}{S} Rd, Rn, op_2 Rd = op_2 - Rn - !carry 同于 SBC,但倒换了两个操作数的前后位置。 数据处理指令--MUL MUL : 乘法 MUL{条件}{S} Rd, Rn, op_2 Rd = Rn * op_2 MUL 提供 两个寄存器之间的32 位整数乘法。 给出的所有操作数、和目的寄存器必须为简单的寄存器。 不能对操作数 2 使用立即值或被移位的寄存器。 目的寄存器和操作数 1 必须是不同的寄存器。 不能指定 R15 为目的寄存器。 MUL R0,R1,R2 R0=R1*R2 数据处理指令--MLA MLA : 带累加的32位乘法 MLA{条件}{S} dest, op 1, op 2, op 3 dest = (op_1 * op_2) + op_3 MLA 的行为同于 MUL,但它把操作数 3 的值加到结果上。这在

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档