ADDC
Does addition with carry
changes OV, AC, CY flags
This does A = A + byte + CY
used in multibyte addition
example
addition of 3456H and 2345H
CLR C ;CY =0
MOV A, #56H ;
ADDC A, #45H ;
MOV R7, A ; STORE LOWER BYTE IN R7
MOV A, #34H ;
ADDC A, #23H ; UPPER BYTE
Result = 3456 + 2345 = 579B
Addressing modes
Immediate: ADDC A, #data
Register: ADDC A, Rn
Direct: ADDC A, 30H
Register-Indirect: ADDC A, @R0
ADDC A, @R1
SUBB
Does subtraction with borrow
Changes OV, Ac, CY flags
This subtracts source byte and carry flag from accumulator and puts result in accumulator.
The steps for subtraction:
Take 2's complement
Add to A
Invert carry.
CY
dest>source 0 result is positive
dest=source 0 result is 0
dest<source 1 result is negative in 2's complement
No SUB instruction in 8051
A = A - byte - CY
example:
MOV A, #45H
CLR C
SUBB A, #23H
Result 22H
Addressing modes
Immediate: SUBB A, #data
Register: SUBB A, Rn
Direct: SUBB A, 30H
Register-Indirect: SUBB A, @R0
SUBB A, @R1
Does addition with carry
changes OV, AC, CY flags
This does A = A + byte + CY
used in multibyte addition
example
addition of 3456H and 2345H
CLR C ;CY =0
MOV A, #56H ;
ADDC A, #45H ;
MOV R7, A ; STORE LOWER BYTE IN R7
MOV A, #34H ;
ADDC A, #23H ; UPPER BYTE
Result = 3456 + 2345 = 579B
Addressing modes
Immediate: ADDC A, #data
Register: ADDC A, Rn
Direct: ADDC A, 30H
Register-Indirect: ADDC A, @R0
ADDC A, @R1
SUBB
Does subtraction with borrow
Changes OV, Ac, CY flags
This subtracts source byte and carry flag from accumulator and puts result in accumulator.
The steps for subtraction:
Take 2's complement
Add to A
Invert carry.
CY
dest>source 0 result is positive
dest=source 0 result is 0
dest<source 1 result is negative in 2's complement
No SUB instruction in 8051
A = A - byte - CY
example:
MOV A, #45H
CLR C
SUBB A, #23H
Result 22H
Addressing modes
Immediate: SUBB A, #data
Register: SUBB A, Rn
Direct: SUBB A, 30H
Register-Indirect: SUBB A, @R0
SUBB A, @R1
No comments:
Post a Comment