previous | start | next

IA32 Assembler for: if statements (2)

max:                              <max(int x, int y)>:          
        pushl   %ebp            
        movl    %esp, %ebp      
        subl    $16, %esp       
        movl    8(%ebp), %eax       reg1 = x
        cmpl    12(%ebp), %eax      [compare y, reg1]
        jge     .L2                 if (reg1 >= y) goto L2
        movl    12(%ebp), %eax      reg1 = y
        movl    %eax, -4(%ebp)      maxVal = reg1
        jmp     .L4                 goto L4
.L2:                             L2:                           
        movl    8(%ebp), %eax       reg1 = x               
        movl    %eax, -4(%ebp)      maxVal = reg1
.L4:                             L4:            
        movl    -4(%ebp), %eax      reg1 = maxVal
        leave                     
        ret                         return 

Notes:



previous | start | next