_DATA segment a dd 400 b dd 100000 c dw 65530 s_ab dd 0 ; aici vom pune a+b s_abc dd 0 ; aici vom pune a+b+c _DATA ends _TEXT segment start: ; de aici incepe executia programului mov bx, _DATA ; incarcam in ds adresa de segment a segmentului mov ds, bx ; 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 cx, word ptr a add cx, word ptr b add bx, word ptr b+2 mov word ptr s_ab, cx mov word ptr s_ab+2, bx ; bx:cx=s_ab=a+b mov ax, c cwd add cx, ax adc bx, dx mov word ptr s_abc, bx ; bx:cx=s_abc=a+b+c mov word ptr s_abc+2, cx ; 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