EasyManua.ls Logo

Atmel AVR

Atmel AVR
191 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
97. SBC – Subtract with Carry
97.1. Description
Subtracts two registers and subtracts with the C Flag, and places the result in the destination register Rd.
Operation:
(i) Rd ← Rd - Rr - C
Syntax: Operands: Program Counter:
(i) SBC Rd,Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31 PC ← PC + 1
16-bit Opcode:
0000 10rd dddd rrrr
97.2. Status Register (SREG) and Boolean Formula
I T H S V N Z C
H Rd3 • Rr3 + Rr3 • R3 + R3 • Rd3
Set if there was a borrow from bit 3; cleared otherwise.
S N V, for signed tests.
V Rd7 • Rr7 • R7 + Rd7 • Rr7 • R7
Set if two’s complement overflow resulted from the operation; cleared otherwise.
N R7
Set if MSB of the result is set; cleared otherwise.
Z R7 • R6 • R5 • R4 • R3 • R2 • R1 • R0 • Z
Previous value remains unchanged when the result is zero; cleared otherwise.
C Rd7 • Rr7 + Rr7 • R7 + R7 • Rd7
Set if the absolute value of the contents of Rr plus previous carry is larger than the absolute value of
the Rd; cleared otherwise.
R (Result) equals Rd after the operation.
Example:
; Subtract r1:r0 from r3:r2
sub r2,r0 ; Subtract low byte
sbc r3,r1 ; Subtract with carry high byte
Atmel AVR Instruction Set Manual [OTHER]
Atmel-0856L-AVR-Instruction-Set-Manual_Other-11/2016
147

Table of Contents

Related product manuals