AVR 微控制器中的算术指令2024 年 8 月 28 日 | 3 分钟阅读 在算术指令中,借助乘法、加法、减法等指令执行各种类型的算术运算。 AVR 微控制器中没有与除法相关的指令,这意味着 AVR 无法执行除法运算。 AVR 微控制器中基本上有两个操作数。 这些操作数被称为寄存器,用于保存数据。 目标寄存器 (D) 使用左侧寄存器或操作数显示,源寄存器 (S) 使用右侧寄存器显示。 以下描述了各种类型的算术指令及其说明 指令 | 操作数 | 说明 | 示例 |
---|
ADD | D, S | ADD 指令用于将寄存器 D(目标寄存器)和寄存器 S(源寄存器)相加。 加法运算的结果将存储在寄存器 D 中。 ADD 指令的语法描述如下 D = D + S | ADD D, S | ADC | D, S | ADC 指令是指带进位的加法。 此指令用于将两个寄存器 D 和 S 与 C 标志的内容相加。 ADC 运算的结果将存储在寄存器 D 中。 ADC 指令的语法描述如下 D = D + S + carry | ADC D, K | SUB | D, S | SUB 指令用于减去寄存器 D(目标寄存器)和寄存器 S(源寄存器)。 减法运算的结果将存储在寄存器 D 中。 SUB 指令的语法描述如下 D = D - S | SUB D, S | SBC | D, S | SBC 指令是指带进位的减法。 此指令用于从两个寄存器 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 | INC | D | INC 指令用于将寄存器 D 的内容增加或加上 1。 递增运算的结果将存储在目标寄存器 D 中。 INC 指令的语法描述如下 D = D + 1 | INC D | DEC | D | DEC 指令用于将寄存器 D 的内容减少或减去 1。 递减运算的结果将存储在目标寄存器 D 中。 DEC 指令的语法描述如下 D = D - 1 | DEC D |
|