; somma32.asm

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