From: GAMMELJL AT SLU DOT EDU Date: Wed, 24 Dec 1997 11:15:21 -0600 (CST) Subject: By George, I think I've got it To: djgpp AT delorie DOT com Message-id: <01IRJTE96R2ABL423S@SLU.EDU> Organization: SAINT LOUIS UNIVERSITY St. Louis, MO MIME-version: 1.0 Precedence: bulk //This is an example of looping and addressing arrays inside a loop //in GCC assembly assembly language. //The program sets a vector of unsigned integers x[i]=i, i=1 to 10. //There are no input or output lines (they are blank). The array is //addressed in in the movl statement below L1 (i is ecx). The _ before x, //the ( and , after x (rather than [ as one might guess for C/C++), and //the ,4 (4 is length of an unsigned integer) are all just part of the //syntax. #include #define mode3() \ __asm__ ( \ "movl $0x0, %%ecx;" \ "L1: addl $0x1, %%ecx;" \ "movl %%ecx,_x(,%%ecx,4);" \ "cmp $0xA, %%ecx;" \ "jne L1" \ : \ : \ : "ecx"); unsigned int x[15]; int main() { int i; mode3(); for (i=0;i<11;i++) cout<