; -------------------------------------------------------------
; 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