● According to the operation unit [i], the data of the area specified by "[S]+2" (read pointer) are
set to [D].
● "[S]+2" (read pointer) is incremented (+1).
● After incrementing (+1), if "[S]+2" (read pointer) is [S] (buffer size), 0 is set to "[S]+2" (read
pointer).
● "[S]+1" (stored data amount) is decremented (-1).
■
Format of data buffer (FIFO buffer)
Buffer size
Stored data amount
Reading pointer
Writing pointer
・・・Size of the data buffer area
・・・Stored data amount (by operation unit)
・・・Relative number from [S]+4
・・・Relative number from [S]+4
Data buffer area
[S]
[S]+1
[S]+2
[S]+3
・・・・・・・・
■
Processing
1. Set the area specified by ([S]+2) (read pointer) to [D] (read data).
2. ([S]+2) (read pointer) is incremented (+1).
3. ([S]+1) (stored data amount) is decremented (-1).
H 105
K 5
K 1
H 101
H 103
K 4
K 4
H 102
H 104
K 5
K 0
H 101
H 103
DT0
DT1
DT2
DT3
DT4
DT5
DT6
DT7
Example) Operation unit: 16 bits (US, SS)
K 3
K 4
H 102
H 104
DT0
DT1
DT2
DT3
DT4
DT5
DT6
DT7
H 20
DT20
DT8
H 105DT8
[S]…DT0 [D]…DT20
[S]
[S]+1
[S]+2
[S]+3
[S]+4
[S]+5
[S]+6
[S]+7
[S]+8
H 101
DT20
[S]
[S]+1
[S]+2
[S]+3
[S]+4
[S]+5
[S]+6
[S]+7
[S]+8
① Because [S]+2 (reading pointer) points at 0,
transfer 0th data in the buffer to D.
③ Decrement (-1)
② Increment (+1)
(Buffer size)
(Stored data amount)
(0th)
(1st)
(2nd)
(3rd)
(4th)
(Buffer size)
(Stored data amount)
(Writing pointer)
(0th)
(1st)
(2nd)
(3rd)
(4th)
(Reading pointer)
(Writing pointer)
(Reading pointer)
[i]…US,SS
■
Flag operations
Name Description
SR7
SR8
(ER)
To be set in the case of out-of-range in indirect access (index modification).
To be set when [S] (buffer size) is larger than 4096, or [S] (buffer size) is 0.
To be set when "[S]+1" (stored data amount) is 0.
8.18 FIFR (Data Read (First-In-First-Out))
8-38 WUME-FP7CPUPGR-12