previous | start | next

IA32 Assembler for: loop statements (3)

sumFirst:                             sumFirst:
        pushl   %ebp
        movl    %esp, %ebp                       
        subl    $16, %esp                                                        
        movl    $0, -4(%ebp)          sum = 0            
        jmp     .L2                   goto L2            
.L3:                               L3:                   
        movl    8(%ebp), %eax         reg1 = n           
        addl    %eax, -4(%ebp)        sum = sum + reg1
        subl    $1, 8(%ebp)           n = n - 1          
.L2:                               L2:                   
        cmpl    $0, 8(%ebp)           [compare 0, n]
        jg      .L3                   if(n > 0) goto L3       
        movl    -4(%ebp), %eax        reg1 = sum
        leave
        ret                           return


previous | start | next