IDEC High Performance Series User Manual
Page 992
![background image](/manuals/350385/992/background.png)
5 Script Coding Examples
20-28
WindO/I-NV2 User’s Manual
Script
This script stores the values of LDR10 through LDR19 in LDR100 through LDR109.
It operates as follows.
First, the indirect value LDR0 is initialized and set to 0.
First iteration (loop): The value of LDR0 is 0, so the condition “[LDR 0] < 10” is true and the statements inside while
are executed.
• The value of LDR10, 0 words from LDR10, is stored in LDR100, 0 words from LDR100.
• 1 is added to the value of the indirect value LDR0 so that it becomes 1.
Second iteration (loop): The value of LDR0 is 1, so the condition “[LDR 0] < 10” is true and the statements inside
while are executed.
• The value of LDR11, 1 word from LDR10, is stored in LDR101, 1 word from LDR100.
• 1 is added to the value of the indirect value LDR0 so that it becomes 2.
:
(Repeats in this manner for the third to ninth iterations)
:
Tenth iteration (loop): The value of LDR0 is 9, so the condition “[LDR 0] < 10” is true and the statements inside while
are executed.
• The value of LDR19, 9 words from LDR10, is stored in LDR109, 9 words from LDR100.
• 1 is added to the value of the indirect value LDR0 so that it becomes 10.
The value of LDR0 is 10, so the condition “[LDR 0] < 10” is false and execution breaks out of the while loop.
After execution, the values of LDR100 through LDR109 are the values of LDR10 through LDR19.
■
Example 5.1.9
Indirect write and indirect read using iteration (while statement)
// Transfer LDR10 through LDR19 to LDR100 through LDR109
// Initialize the indirect value
[LDR 0] = 0;
// Loop ten times
while ([LDR 0] < 10)
{
// Transfer 1 word by indirect assignment
OFFSET([LDR 100], [LDR 0]) = OFFSET([LDR 10], [LDR 0]);
// Increment indirect value
[LDR 0] = [LDR 0] + 1
}