Dati    SEGMENT
; N1 e N2 numeri a 32 bit da sommare    
N1      DD B42FA005h
N2      DD 2DD08451h
Ris     DD ?    
Dati    ENDS

Codice  SEGMENT
        
        ; punto di inizio del programma
Inizio:         
        ; inizializzazione segmento dati (DS)
        MOV AX,Dati
        MOV DS,AX
                                             
        ; somma a 32 bit (con riporto intermendio)
        ; somma dei primi 16 bit (con riporto)                                     
        MOV AX,Word Ptr[N1]
        MOV BX,Word Ptr[N2]
        ADD AX,BX
        ; memorizzazione risultato (parte bassa)
        MOV Word Ptr[Ris],AX                  
                                                
        ; somma dei secondi 16 bit (parte alta)                                                
        MOV AX,Word Ptr[N1 + 2]
        MOV BX,Word Ptr[N2 + 2]                
        ; (somma con carry)
        ADC AX,BX          
        ; memorizzazione del risultato (parte alta)
        MOV Word Ptr[Ris + 2],AX
                                                                  
        ; esce al DOS                                          
        MOV AH,4Ch
        INT 21h            
    
Codice  ENDS

END Inizio 