AVR 微控制器中的算术指令

2024 年 8 月 28 日 | 3 分钟阅读

在算术指令中,借助乘法、加法、减法等指令执行各种类型的算术运算。 AVR 微控制器中没有与除法相关的指令,这意味着 AVR 无法执行除法运算。 AVR 微控制器中基本上有两个操作数。 这些操作数被称为寄存器,用于保存数据。 目标寄存器 (D) 使用左侧寄存器或操作数显示,源寄存器 (S) 使用右侧寄存器显示。

以下描述了各种类型的算术指令及其说明

指令操作数说明示例
ADDD, SADD 指令用于将寄存器 D(目标寄存器)和寄存器 S(源寄存器)相加。 加法运算的结果将存储在寄存器 D 中。 ADD 指令的语法描述如下
D = D + S
ADD D, S
ADCD, SADC 指令是指带进位的加法。 此指令用于将两个寄存器 D 和 S 与 C 标志的内容相加。 ADC 运算的结果将存储在寄存器 D 中。 ADC 指令的语法描述如下
D = D + S + carry
ADC D, K
SUBD, SSUB 指令用于减去寄存器 D(目标寄存器)和寄存器 S(源寄存器)。 减法运算的结果将存储在寄存器 D 中。 SUB 指令的语法描述如下
D = D - S
SUB D, S
SBCD, SSBC 指令是指带进位的减法。 此指令用于从两个寄存器 D 和 S 中减去 C 标志。 SBC 运算的结果将存储在寄存器 D 中。 SBC 指令的语法描述如下
D = D - S - carry
SBC D, S
MUL无符号数。MUL 指令用于将寄存器 D(目标寄存器)与寄存器 S(源寄存器)相乘,并且两个寄存器都包含无符号数。 无符号数的乘积结果将放置在 R0 或 R1 中。 MUL 指令的语法描述如下
R1/R0 = D * S
R0 = 结果的低字节
R1 = 结果的高字节
MUL D, S
MULS有符号数。MULS 指令用于将寄存器 D(目标寄存器)与寄存器 S(源寄存器)相乘,并且两个寄存器都包含有符号数。 有符号数的乘积结果将放置在 R0 或 R1 中。 MULS 指令的语法描述如下
R1/ R0 = (+/-)D * (+/-)S
R0 = 结果的低字节
R1 = 结果的高字节
MULS D, S
MULSU有符号数和无符号数。MULSU 指令用于将寄存器 D(目标寄存器)与寄存器 S(源寄存器)相乘。 其中寄存器 D 是被乘数,包含一个有符号数,寄存器 S 是乘数,包含一个无符号数。 有符号数和无符号数的乘积结果将放置在 R0 或 R1 中。 MULSU 指令的语法描述如下
R1/R0 = (+/-)D * S
R0 = 结果的低字节
R1 = 结果的高字节
MULSU D, S
INCDINC 指令用于将寄存器 D 的内容增加或加上 1。 递增运算的结果将存储在目标寄存器 D 中。 INC 指令的语法描述如下
D = D + 1
INC D
DECDDEC 指令用于将寄存器 D 的内容减少或减去 1。 递减运算的结果将存储在目标寄存器 D 中。 DEC 指令的语法描述如下
D = D - 1
DEC D