Bfset - T - Motorola DSP56800 Manual

16-bit digital signal processor
Table of Contents

Advertisement

BFSET
Operation:
1 → (<bit field> of destination)
1 → (<bit field> of destination)
Description: Test all selected bits of the destination operand. If all selected bits are set, C is set; otherwise, C is
cleared. Then set the selected bits, and store the result in the destination memory location. The bits to
be tested are selected by a 16-bit immediate value in which every bit set is to be tested and set. This
instruction performs a read-modify-write operation on the destination memory location or register and
requires two destination accesses.
Usage:
This instruction is very useful in performing I/O and flag bit manipulation.
Example:
BFSET
Before Execution
X:$FFE2
SR
Explanation of Example:
Prior to execution, the 16-bit X memory location X:$FFE2 contains the value $8921. Execution of the
instruction tests the state of bits 10, 12, 13, 14, and 15 in X:$FFE2; does not set C (because all the CCR
bits were not set); and then sets the bits.
Condition Codes Affected:
15
14
LF
*
For destination operand SR:
For other destination operands:
Note:
If all bits in the mask are set to zero, the destination is unchanged, and the C bit is set.
A-54
Test Bit Field and Set
#$F400,X:<<$FFE2
8921
0000
MR
13
12
11
10
9
*
*
*
*
I1
?
— Set as defined in the field and if specified in the field
L
— Set if data limiting occurred during 36-bit source move
C
— Set if all bits specified by the mask are set
Clear if not all bits specified by the mask are set
DSP56800 Family Manual
Assembler Syntax:
BFSET
BFSET
After Execution
X:$FFE2
SR
CCR
8
7
6
5
4
L
I0
SZ
E
U
BFSET
#iiii,X:<ea>
#iiii,D
FD21
0000
3
2
1
0
C
N
Z
V

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents