Monday, August 30, 2010

Instruction Set Continued


SETB - Set bit
Description: The SETB instruction sets the bit specified by operand. The SETB instruction can operate on Carry Flag or any addressable bit.
Syntax: SETB operand
Example:
SETB C
SETB P1.1

SJMP – Short Jump
Description: The SJMP instruction jumps unconditionally from the current execution location to the location specified by the operand.
Syntax: SJMP operand
operand should be between -128 to +128.
Example:
SJMP 0x89
SJMP Label

SUBB – Subtract from Accumulator with borrow.
Description: The SUBB instruction used to subtract the value represented by the operand from accumulator. The result is stored in the Accumulator. The Auxiliary Carry Flag is set if borrow is require for bit-3. The carry flag is set if borrow is required for bit-7. The Overflow Flag is set if borrow required for bit-6 or bit-7.
Syntax: SUBB A, operand
The operand can be a immediate value, register, register address or memory address.
Example:
SUBB A, #0x0A
{A} << ({A}-{C}-0x0A)
SUBB A, R0
{A} << ({A}-{C}-{R0})

SWAP – Swap the nibbles of the Accumulator
Description: The SWAP instruction swaps or interchange the nibbles of the content of Accumulator.
Syntax: SWAP A
Example:
A = 0xAE
SWAP A
A = 0xEA

XCH - Exchange Accumulator
Description: The XCH instruction used to the exchange the content of the Accumulator with the content of operand specified.
Syntax: XCH A, operand
The operand can be a immediate value, register, register address or memory address.
Example:
XCH A, R0
{A} < > {R0}
XCH A, #0xA0
{A} < > {0xA0}

XCHD - Exchange Digit
Description: The XCHD instruction used to the exchange the lower nibble of the Accumulator with the lower nibbles of content of address specified by the operand.
Syntax: XCHD A, operand
The operand can be any register with memory address.
Example:
A = 36H & @R0 = 75H
XCHD A, @R0
{A(0-3)} < > {@R0(0-3)}
A = 35H & @R0 = 76H

XRL – Bit-wise XOR
Description: The XRL instruction used to perform the bit-wise XOR/Exclusive OR between the specified operands. The result will be stored at the destination operand.
Syntax: XRL operand1, operand2
If the operand1 or destination is Accumulator, the operand2 or source can be immediate value, register, register address or memory address. If destination is memory address, the source can be Accumulator or immediate value.
Example:
XRL A, R0
XRL A, @R0
{A} << {A} ^ {R0}

No comments:

Post a Comment