Invoking callable services from assembler routines
A Language Environment-conforming assembler routine called by C should not invoke a z/OS UNIX API.
The interface to a callable service is the same as the interface previously described for assembler routines. An example of calling the CEEGTST (Get Heap Storage) callable service is shown in Figure 1.
A X'80000000' placed in the last parameter address slot indicates that the fc (feedback code) parameter is omitted.
Figure 1. Sample invocation of a callable service from assembler
*
* R12 = A(CAA)
* R13 = DSA
* This example is non-reentrant.
*
LA R1,PLIST
L R15,=V(CEEGTST)
BALR R14,R15⋮
PLIST DS 0D
DC A(HEAP_ID)
DC A(SIZE)
DC A(ADDR)
DC A(X'80000000')
HEAP_ID DC F'0' Heap ID for the user
SIZE DC F'256' Size of storage to allocate
ADDR DC F'0' Address of allocated storage