[ARM 汇编]进阶篇—数据处理指令—2.1.1 算术指令

文鸯
• 阅读 489

ARM 汇编语言中,算术指令用于完成基本的算术运算,如加法、减法、乘法等。在本节中,我们将详细介绍 ARM 汇编中的算术指令,并通过实例帮助你更好地理解和掌握这些指令。

  1. 加法指令(ADD)

加法指令用于将两个寄存器中的值相加,并将结果存储在目标寄存器中。基本语法如下:

ADD Rd, Rn, Operand2

其中,Rd 是目标寄存器,Rn 是第一个操作数所在寄存器,Operand2 是第二个操作数。

示例:

ADD R0, R1, R2

这个指令将 R1 和 R2 中的值相加,并将结果存储在 R0 中。

  1. 减法指令(SUB)

减法指令用于将两个寄存器中的值相减,并将结果存储在目标寄存器中。基本语法如下:

SUB Rd, Rn, Operand2

其中,Rd 是目标寄存器,Rn 是第一个操作数所在寄存器,Operand2 是第二个操作数。

示例:

SUB R0, R1, R2

这个指令将 R1 中的值减去 R2 中的值,并将结果存储在 R0 中。

  1. 反向减法指令(RSB)

反向减法指令用于将两个寄存器中的值以相反的顺序相减,并将结果存储在目标寄存器中。基本语法如下:

RSB Rd, Rn, Operand2

其中,Rd 是目标寄存器,Rn 是第一个操作数所在寄存器,Operand2 是第二个操作数。

示例:

RSB R0, R1, R2

这个指令将 R2 中的值减去 R1 中的值,并将结果存储在 R0 中。

  1. 乘法指令(MUL)

乘法指令用于将两个寄存器中的值相乘,并将结果存储在目标寄存器中。基本语法如下:

MUL Rd, Rn, Rm

其中,Rd 是目标寄存器,Rn 是第一个操作数所在寄存器,Rm 是第二个操作数所在寄存器。

示例:

MUL R0, R1, R2

这个指令将 R1 和 R2 中的值相乘,并将结果存储在 R0 中。

以上就是 ARM 汇编中常见的算术指令。在实际编程中,你可能需要根据具体需求使用这些指令完成算术运算。通过多加练习和实践,你将更加熟练地掌握这些指令的使用。
推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

[ARM 汇编]进阶篇—数据处理指令—2.1.1 算术指令

点赞
收藏
评论区
推荐文章
桃浪十七丶 桃浪十七丶
4年前
计算机组成原理4.3CISC和RISC的基本概念
4.3.1复杂指令系统计算机CISC(ComplexInstructionSetComputer)4.3.1.1CISC的简介全称ComplexInstructionsSetComputer,复杂指令系统计算机如X86架构的PC,台式电脑,采用“存储程序”的思想,即把一段基本的指令存储在某个地方,实现复杂指令时,可以采用已经存储的基本指令,这
Wesley13 Wesley13
3年前
PIC中档单片机汇编指令详解(5)
位操作指令详述BCF数据寄存器指定位清0语法形式:BCFf,b操作数:f为数据寄存器的低7位地址(0x00~0x7F)B为数据位编号(0~7)执行时间:一个指令周期执行过程:使数据寄存器f的的b位清0状态标志影响:无说明:该指令可对任何数据寄存器的任意一个位置清0,常用于标志位的设定和清除,或者把某一管脚置成低电平。指
Stella981 Stella981
3年前
Sass @media指令
本节我们学习Sass中的@media指令,@media指令用于设置样式规则到不同的媒体类型,这和CSS的使用规则差不多,但是它还有一点不同,就是@media指令可以嵌套在Sass选择器中。有点类似于JS冒泡功能,它会冒泡到样式表的顶层。@media指令的使用示例:.xkd{
Stella981 Stella981
3年前
Julia
算术运算符算术运算符适用于所有的基本数值类型x,一元加法,就是x本身\x,一元减法,x的相反数xy,二元加法,做加法运算xy,二元减法,做减法运算x\y,乘法,做乘法运算x/y,除法,做除法运算x^y,乘方,x的y次幂x%y,取余,x除以y然后取余数,等价于
Wesley13 Wesley13
3年前
CAS机制与自旋锁
CAS(CompareandSwap),即比较并替换,java并发包中许多Atomic的类的底层原理都是CAS。它的功能是判断内存中某个地址的值是否为预期值,如果是就改变成新值,整个过程具有原子性。具体体现于sun.misc.Unsafe类中的native方法,调用这些native方法,JVM会帮我们实现汇编指令,这些指令是CPU的原子指令,因此
Wesley13 Wesley13
3年前
Java多线程模式之流水线模式
流水线什么是流水线?在计算机中,对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(ALU),写结果。前三步由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,第一条指令执行完毕。然后第二条指令又是先
小万哥 小万哥
1年前
Python 运算符
运算符用于对变量和值执行操作。在下面的示例中,我们使用运算符将两个值相加:pythonprint(105)Python将运算符分为以下几组:算术运算符赋值运算符比较运算符逻辑运算符身份运算符成员运算符位运算符算术运算符算术运算符用于对数字值执行常见的数
小万哥 小万哥
1年前
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。算术运算符算术运算符用于执行常见的数学运算:csharpintx10050;//加法,结果为150intyx30;//减法,结果为120intzx2;//乘
小万哥 小万哥
1年前
Java 运算符详解与字符串处理技巧
Java运算符算术运算符算术运算符用于执行常见的数学运算。|运算符|名称|描述|示例||||||||加法|将两个值相加|xy|||减法|从一个值中减去另一个值|xy|||乘法|将两个值相乘|xy||/|除法|将一个值除以另一个值|x/y||%|取模|返
小万哥 小万哥
1年前
NumPy 简单算术:加减乘除及其他运算
NumPy中的简单算术运算可以通过add,subtract,multiply,divide,power,mod,remainder等函数实现,这些函数支持条件运算,并接受where参数。例如,add()实现加法,subtract()表示减法,multiply()是乘法,divide()用于除法,power()提升到幂次,mod()和remainder()计算余数。absolute()或abs()可以计算数组元素的绝对值。这些函数可用于数组或类似数组对象,返回新数组存储运算结果。