This program demonstrate how to pass an array of doubles from a C++ calling function to an X86 function. The array in this sample program is a static array. We know it is static because because its size is completely known before the source code is compiled. When the compiler sees that declaration of a static array it creates storage for the array of the exact size specified. The array is in effect a local variable of the C++ main function. All such local variables are static and are stored in the associated activation record, which is in the stack.
Note this one fact. The main function has a declared double on the next line after the declaration of the array. The array treats that separate scalar variable as if it were slot number -1.
2023-Sept-12: This program was re-tested. The testing uncovered no defects. The program demonstrates the declaration of an array in C++, passing the array to X86, modifying the array in X86, and the modified array displayed by C++.