The 8051 Instruction Set
Atmel 8051 Microcontrollers Hardware Manual 1-60
4316B–8051–02/04
1.14.48 SWAP A
1.14.49 XCH A,<byte>
SUBB A,#data
Bytes: 2
Cycles: 1
Encoding: 10010100 immediate data
Operation: SUBB
(A) ← (A) - (C) - #data
Function: Swap nibbles within the Accumulator
Description: SWAP A interchanges the low- and high-order nibbles (four-bit fields) of the Accumulator (bits 3 through 0 and
bits 7 through 4). The operation can also be thought of as a 4-bit rotate instruction. No flags are affected.
Example: The Accumulator holds the value 0C5H (11000101B). The instruction,
SWAP A
leaves the Accumulator holding the value 5CH (01011100B).
Bytes: 1
Cycles: 1
Encoding: 11000100
Operation: SWAP
(A
3-0
)
D
(A
7-4
)
Function: Exchange Accumulator with byte variable
Description: XCH loads the Accumulator with the contents of the indicated variable, at the same time writing the original
Accumulator contents to the indicated variable. The source/destination operand can use register, direct, or
register-indirect addressing.
Example: R0 contains the address 20H. The Accumulator holds the value 3FH (0011111lB). Internal RAM location 20H
holds the value 75H (01110101B). The following instruction,
XCH A,@R0
leaves RAM location 20H holding the values 3FH (00111111B) and 75H (01110101B) in the accumulator.
XCH A,R
n
Bytes: 1
Cycles: 1
Encoding: 11001r r r
Operation: XCH
(A)
D
((R
n
)