/* loopint.c a very simple loop that will be coded for nasm */ #include int main() { int dd1[100]; int i; dd1[0]=5; /* be sure loop stays 1..98 */ dd1[99]=9; for(i=1; i<99; i++) dd1[i]=7; printf("dd1[0]=%d, dd1[1]=%d, dd1[98]=%d, dd1[99]=%d\n", dd1[0], dd1[1], dd1[98],dd1[99]); return 0; } gcc -O3 -S loopint.c # creates loopint.s .file "loopint.c" .section .rodata.str1.32,"aMS",@progbits,1 .align 32 .LC0: .string "dd1[0]=%d, dd1[1]=%d, dd1[98]=%d, dd1[99]=%d\n" .text .p2align 2,,3 .globl main .type main,@function main: pushl %ebp movl %esp, %ebp subl $408, %esp andl $-16, %esp movl $5, -408(%ebp) movl $9, -12(%ebp) movl $1, %eax .p2align 2,,3 .L6: movl $7, -408(%ebp,%eax,4) incl %eax cmpl $98, %eax jle .L6 subl $12, %esp pushl -12(%ebp) pushl -16(%ebp) pushl -404(%ebp) pushl -408(%ebp) pushl $.LC0 call printf xorl %eax, %eax leave ret .Lfe1: .size main,.Lfe1-main .ident "GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"