%include 'io.asm' section .bss sinput: resb 255 ;reserve a 255 byte space in memory for the users input string $a: rest 1 $b: rest 1 section .text global _start _start: call main mov eax, 1 ; 1 est le code de SYS_EXIT int 0x80 ; exit main: push ebp ; sauvegarde la valeur de ebp mov ebp, esp ; nouvelle valeur de ebp mov ecx, sinput mov edx, 255 mov eax, 3 ; 3 est le code de SYS_READ mov ebx, 0 ; 0 est le code de STDIN int 80h mov eax, sinput call atoi push eax pop ebx mov [$a], ebx ; stocke registre dans variable mov ecx, sinput mov edx, 255 mov eax, 3 ; 3 est le code de SYS_READ mov ebx, 0 ; 0 est le code de STDIN int 80h mov eax, sinput call atoi push eax pop ebx mov [$b], ebx ; stocke registre dans variable mov ebx, [$a] ; lit variable dans ebx push ebx mov ebx, [$b] ; lit variable dans ebx push ebx pop ebx ; depile la seconde operande dans ebx pop eax ; depile la permière operande dans eax add eax, ebx ; effectue l'opération push eax ; empile le résultat pop eax call iprintLF pop ebp ; restaure la valeur de ebp ret