_DATA segment a db 20 ; 20 = 14h b db 16 ; 16 = 10h c db 30h ; 48 = 30h s_ab db 0 ; aici vom pune a+b s_abc db 0 ; aici vom pune a+b+c _DATA ends _TEXT segment assume cs:_TEXT assume ds:_DATA start: ; de aici incepe executia programului mov ax, _DATA ; incarcam in ds adresa de segment a segmentului mov ds, ax ; de date. Nu putem face direct (mov ds, _DATA ; nu are operanzi compatibili (vom vedea mai ; tarziu de ce. ; de aici incepe programul propriu-zis mov al, a add al, b mov s_ab, al ; al=s_ab=a+b add al, c mov s_abc, al ; al=s_abc=a+b+c ; terminam executia programului mov ax, 4C00h int 21h _TEXT ends _STACK segment stack db 500 dup(?) _STACK ends end start ; aici marcam punctul d intrare in progrm