Datasheet
1996 Microchip Technology Inc. DS30412C-page 137
PIC17C4X
SWAPF Swap f
Syntax: [
label
] SWAPF f,d
Operands: 0 ≤ f ≤ 255
d ∈ [0,1]
Operation: f<3:0> → dest<7:4>;
f<7:4> → dest<3:0>
Status Affected: None
Encoding:
0001 110d ffff ffff
Description:
The upper and lower nibbles of register
'f' are exchanged. If 'd' is 0 the result is
placed in WREG. If 'd' is 1 the result is
placed in register 'f'.
Words: 1
Cycles: 1
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read
register 'f'
Execute Write to
destination
Example:
SWAPF REG, 0
Before Instruction
REG = 0x53
After Instruction
REG = 0x35
TABLRD Table Read
Syntax: [
label
] TABLRD t,i,f
Operands: 0 ≤ f ≤ 255
i ∈ [0,1]
t ∈ [0,1]
Operation: If t = 1,
TBLATH → f;
If t = 0,
TBLATL → f;
Prog Mem (TBLPTR) → TBLAT;
If i = 1,
TBLPTR + 1 → TBLPTR
Status Affected: None
Encoding:
1010 10ti ffff ffff
Description:
1. A byte of the table latch (TBLAT)
is moved to register file 'f'.
If t = 0: the high byte is moved;
If t = 1: the low byte is moved
2. Then the contents of the program
memory location pointed to by
the 16-bit Table Pointer
(TBLPTR) is loaded into the
16-bit Table Latch (TBLAT).
3. If i = 1: TBLPTR is incremented;
If i = 0: TBLPTR is not
incremented
Words: 1
Cycles: 2 (3 cycle if f = PCL)
Q Cycle Activity:
Q1 Q2 Q3 Q4
Decode Read
register
TBLATH or
TBLATL
Execute Write
register 'f'