.text
    addi    $a0,    $0, 4       # x = 4;
    addi    $a1,    $0, 7       # y = 7;
    jal foo             # foo(4,7);
    add $a0,    $0, $v0     # res = foo(4,7);
    addi    $v0,    $0, 1       # printf("%d\n",res);
    syscall                 # call 
    addi    $v0,    $0, 10      # return 0;
    syscall                 # call
foo:
    sw  $t0,    0($sp)          # $t0 = 0
    add $t0,    $a0,    $a1     # var = x + y
    sra $v0,    $t0,    1       # res = var >> 1
    andi    $t0,    $t0,    1       # var & 1
    beq $t0,    $0, foo_fin     # (var & 1) != 1
    addi    $v0,    $v0,    1       # res = res + 1
foo_fin:
    lw  $t0,    0($sp)          # enregistrement pour le retour
    jr  $ra             # return res;