11 - 449 11 - 449
MELSEC-Q
11 INSTRUCTIONS AND FUNCTIONS
• Specify the starting location of the data transfer in the memory area of <transfer source> in
<offset 2>. This should be specified as an offset value relative to the starting address of
the memory area of <transfer source>, in byte units.
Example
Specify 1 for <offset 2> when data in 2nd and subsequent bytes is transferred.
0
1
Memory area of <transfer source>
2
n
Byte offset value when <transfer source>
is specified as an array name ( )
2nd byte
Target range of transfer
1st byte (starting location of the memory
area of <transfer source>)
To <transfer
destination>
If <transfer source> is specified as an array variable name, specify the byte offset value
relative to the starting address of the memory area of the specified element only.
This is done in the same way as specifying the byte offset value for the <transfer
destination> in case of an array variable name; see the previous page.
• For <number of transferred bytes>, specify the number of bytes of target memory, which is
transferred from the location of <offset 2> in <transfer source> and onward to the location
of <offset 1> in <transfer destination> and onward.
Specify the smaller number of bytes if the numbers of bytes to be transferred differ
between <transfer destination> and <transfer source>.
• The value ranges that can be specified for <offset 1>, <offset 2>, and <number of
transferred bytes> can be summarized as follows. Both conditions must be met.
0 ( (offset 1 + number of transferred bytes) ( number of bytes of the target memory area
in the transfer destination
0 ( (offset 2 + number of transferred bytes) ( number of bytes of the target memory area
in the transfer source
• If the number of bytes in the transfer target ranges in <transfer destination> and <transfer
source> and <number of transferred bytes> are different, the least number of bytes among
them is the number of bytes that are actually transferred. The execution ends normally
after the data in the memory area is transferred.
Any excess memory area in <transfer destination> to which data was not transferred
keeps the data before the execution of the ZMOVE instruction (it does not change).
• <offset 1>, <offset 2>, and <number of transferred bytes> can be specified as decimal
values. However, if a value greater than 32768 is to be specified, the constant should be
expressed in hexadecimal. Values from 32768 to 65535 are expressed by hexadecimal
values from &H8000 to &HFFFF. Note that if values from 1 to 32768 in decimal are
specified, they are treated and processed as the corresponding values from 65535 to
32768.