AVR微控制器的算术、逻辑与I/O操作
1. 减法操作
AVR微控制器中的SUB指令用于执行无进位减法,即从一个寄存器的值中减去另一个寄存器的值。若减法结果为负,则以二进制补码形式存储。
1.1 正结果减法示例
test_asm : main.asm – Subtraction with positive result
ldi r16, 145
ldi r17, 99
sub r16, r17 ; R16 = R16 – R17 = 145 – 99 = 46 or 0x2E
在这个例子中,SUB指令将R17的值从R16的值中减去,并将结果存回R16。可以在Microchip Studio模拟器中测试此代码。
1.2 负结果减法示例
test_asm : main.asm – Subtraction with negative result
ldi r16, 84
ldi r17, 199
sub r16, r17 ; R16 = R16 – R17 = 84 – 199 = -115 or 0x8D
在Microchip Studio调试器中,上述代码的减法结果在R16中为0x8D,状态寄存器中的负标志被设置。当在处理器状态窗口中将R16转换为十进制时,它不会考虑该数为负数,而是将其视为正数。要将0x8D(二进制为0b100
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



