DMOVIN [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation
MPE/iX Intrinsics Reference Manual
DMOVIN
NM and CM callable.
Copies data from an extra data segment into a data area. Data segment
management (DS) capability is required.
NOTE Data segment management (DS) intrinsics are not recommended for use
in the NM programming environment; use of DS intrinsics in NM
degrades an NM program's performance.
Syntax
__________________________________________________
| |
| U16V I16V I16V U16A |
| DMOVIN(index,displacement,number,location);|
__________________________________________________
Parameters
index 16-bit unsigned integer by value (required)
Specifies the index of the extra data segment,
obtained from a GETDSEG intrinsic call.
displacement 16-bit signed integer by value (required)
Specifies the displacement, in half words, of the
first half word in the string to be transferred
from the first half word in the data segment. This
value must be >=0.
number 16-bit signed integer by value (required)
Specifies the size, in half words, of the data
string to be transferred. This value must be >=0.
location 16-bit unsigned integer array (required)
Contains the array (buffer) in the stack where the
data string is to be moved.
Operation Notes
When DMOVIN is called, a bounds check is initiated to ensure that the
data is taken from within the data segment boundaries and moved to an
available data area. For example, in Figure 4-1 , to move four half
words from locations 422 through 425 of the extra data segment (whose
index is 21) to array ARA (located in your data area), the intrinsic call
would be:
DMOVIN(21,422,4,ARA[10]);
The index is 21 (refer to GETDSEG); displacement within the data segment
is 422; the number of half words to move into the data area is 4; and the
location to begin transferring the data is the address of ARA[10]. If
ARA is an array of half words, the four half words are moved to ARA[10]
through ARA[13], as shown in Figure 4-1 .
___________________________________________________________
| |
| |
| ARA[1..n] Extra Data Segment |
| 1 +--------------+ 0 +--------------+ |
| 2 |--------------| 1 |--------------| |
| 3 |--------------| 2 +--------------+ |
| 4 |--------------| . |
| 5 |--------------| . |
| 6 |--------------| . |
| 7 |--------------| +--------------+ |
| 8 |--------------| 420 |--------------| |
| 9 |--------------| 421 |--------------| |
| 10 |--------------| <-------- 422 |--------------| |
| 11 |--------------| <-------- 423 |--------------| |
| 12 |--------------| <-------- 424 |--------------| |
| 13 |--------------| <-------- 425 +--------------+ |
| 14 +--------------+ |
| . . |
| . . |
| . . |
| +--------------+ +--------------+ |
| n +--------------+ 12000 +--------------+ |
| |
| |
___________________________________________________________
Figure 4-1. DMOVIN Data Movement.
Condition Codes
CCE (2) Request granted.
CCG (0) Request denied. A bounds-check failure occurred.
CCL (1) Request denied. Illegal index or number parameter.
Related Information
Intrinsics DMOVOUT, GETDSEG
Commands None
Manuals Introduction to MPE XL for MPE V Programmers
(30367-90005)
MPE/iX 5.0 Documentation