1 / 31
文档名称:

ARM指令集详解公开课获奖课件赛课一等奖课件.ppt

格式:ppt   大小:42KB   页数:31页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ARM指令集详解公开课获奖课件赛课一等奖课件.ppt

上传人:书犹药也 2025/5/7 文件大小:42 KB

下载得到文件列表

ARM指令集详解公开课获奖课件赛课一等奖课件.ppt

相关文档

文档介绍

文档介绍:该【ARM指令集详解公开课获奖课件赛课一等奖课件 】是由【书犹药也】上传分享,文档一共【31】页,该文档可以免费在线阅读,需要了解更多关于【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