
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
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
Description:
1.
A byte of the table latch (TBLAT)
is moved to register le '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'