; molt_proc.asm

                          
; -------------------------------------------------------------                          
; programma che effettua una moltiplicazione  
; ripetendo operazioni di somma                                 
; ------------------------------------------------------------- 
 
; area di stack (segmento stack) 
Stack  SEGMENT 
     DB 48 DUP(?)   
Stack  ENDS 
                                 
; segmento dati                                 
Dati   SEGMENT  
  N   DB 30   
  M   DB 5 
  Ris DW ? 
Dati   ENDS 
                
; segmento codice                
Codice SEGMENT 
 
Inizio:  
   MOV AX,Dati     ; fapuntare il registro DS all'area dati 
   MOV DS,AX 
  
   MOV CH,0d       ; carica N in CX 
   MOV CL, N 
   MOV AH,0d       ; carica M in AX (addendo sommato N volte) 
   MOV AL, M 
   MOV Ris,0d      ; azzera la locazione ove viene inserito il risultato 
Ciclo: 
   CALL Somma    
   LOOP Ciclo      ; effettua N cicli 
    
   MOV AH,4Ch      ; ritorno al DOS 
   INT 21h 
    
Somma PROC NEAR    ; porcedura assembly che compie     
   ADD Ris,AX      ; la sola operazione di somma 
   RET  
Somma ENDP     
     
Codice ENDS 
 
END Inizio  
; - asm2html -