Advanced Function Instruction
7 -1 9
FUN 44
D
P
BYMV
BYTE MOVE
FUN 44
D
P
BYMV
S : Source data to be moved
Ns : Assign Ns byte within S as source byte
D : Destination register to be moved
Nd : Assign Nd byte within D as target byte
S, Ns, D, Nd may combine with V, Z, P0~P9 to
serve indirect address application
WX
WY
WM
WS TMR CTR
HR
IR
OR
SR
ROR
DR
K
XR
Range
Ope-
rand
WX0
∣
WX240
WY0
∣
WY240
WM0
∣
WM1896
WS0
∣
WS984
T0
∣
T255
C0
∣
C255
R0
∣
R3839
R3840
∣
R3903
R3904
∣
R3967
R3968
∣
R4167
R5000
∣
R8071
D0
∣
D4095
16/32-bit
+/- number
V
、
Z
P0~P9
S
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Ns
○
○
○
○
○
○
○
○
○
○
○
○
0
~
3
○
D
○
○
○
○
○
○
○
○
*
○
*
○
○
Nd
○
○
○
○
○
○
○
○
○
○
○
○
0
~
3
○
z
When move control "EN" = 1 or "EN
↑
" (
P
instruction) has a transition from 0 to 1, move Nsth byte within S
to Ndth byte position within D. (A byte is comprised of 8 bits. Starting from the lowest bit of the register, B0,
each successive eight bits form a byte, so B0~B7 form byte 0, B8~B15 form byte 1, etc...)
z
When the operand is 16 bit, the effective range of Ns or Nd is 0~1. For 32 bit (
D
instruction) operand, the
range is 0~3. Beyond this range, will set the N value error flag "ERR" to 1, and do not carry out this
instruction.
X0
EN
S :
Ns : 2
R 0
ERR
D :
Nd : 1
44DP.BYMV
R 2
z
The instruction at left moves the third byte (B16~B23)
within S (32 bit register composed of R1R0), to the first
byte within D (32 bit register composed of R3R2). Other
bytes within D remain unchanged.
B15
B0
S R1 R0
1 0 1 1 1 0 1 1
Byte3
Byte2
Byte1
Byte0
Ns
=
2
──────────────
Ø
X0
=
Nd
=
1
────────────────────
Byte3
Byte2
Byte1
Byte0
D R3 R2
1 0 1 1 1 0 1 1
B31
B0