Advanced Function Instruction
7 -2 3
FUN 48
P
DIST
NIBBLE DISTRIBUTE
FUN 48
P
DIST
S : Source data to be distributed
N : Number of nibbles to be distributed
D : Starting register storing distribution data
S, N, D 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-bit
+/-
number
V
、
Z
P0~P9
S
○
○
○
○
○
○
○
○
○
○
○
○
○
○
N
○
○
○
○
○
○
○
○
○
○
○
○
1~4
○
D
○
○
○
○
○
○
○
○
*
○
*
○
○
z
When distribution control "EN" = 1 or "EN
↑
" (
P
instruction) has a transition from 0 to 1, will take N
successive nibbles starting from the lowest nibble NB0 within S, and distribute them in ascending order into
the 0 nibbles of N registers starting from D. The nibbles other than NB0 in each of the registers within D are
all set to zero. (A nibble is comprised by 4 bits. Starting from the lowest bit in a register, B0, each successive
4 bits form a nibble, so B0~B3 form nibble 0, B4~B7 form nibble 1, etc...)
z
This instruction only provides WORD (16 bit) operand. Therefore there are usually only 4 nibbles can be
involved, so the effective value of N is 1~4. Beyond this range, will set the N value error flag "ERR" to 1, and
do not carry out this instruction.
X0
EN
S :
N : 3
ERR
D :
48P.DIST
WY 0
R 0
z
The instruction at left writes NB0~NB2 from the WX0
register into the NB0 of the 3 consecutive registers
R0~R2.
N=3
NB3
NB2
NB1
NB0
X15
X11
X0
B15
B0
S WX0 0 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
D
R0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
NB3 NB2 NB1 NB0
D+1
R1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
D+2
R2
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Ö
X0
=
NB1
~
NB3 are all set a "0 "