edutecnica

Esercizio 5        

Per calcolare il quadrato di un numero n useremo un algoritmo che calcola il quadrato come la somma dei primi n numeri dispari, nel caso del numero 5 il numero stampato dal registro AL sarà
AL=1+3+5+7+9=25
si possono fare prove anche con altri numeri .
TITLE SEI
;calcola il quadrato di un numero
.MODEL SMALL
.STACK
.DATA
.CODE
SUB CX,CX
MOV CL,5 ; calcolo il quadrato di 5
SUB AL,AL ; AL contiene il quadrato del numero N
MOV BL,1
CICLO: ADD AL,BL
       ADD BL,2
       LOOP CICLO
CALL TRAD
MOV AX,4C00H
INT 21H

TRAD PROC NEAR
MOV CL,10
DIV CL;
PUSH AX
CMP AL,0
JE SALTA
ADD AL,48 ; stampa del quoto
MOV AH,02
MOV DL,AL
INT 21H
SALTA: POP AX
XCHG AL,AH
ADD AL,48 ; stampa del resto
MOV AH,02
MOV DL,AL
INT 21H
RET
TRAD ENDP
END

nel caso di n=5 dovremo fare 5 iterazioni, quindi il registro CL viene impostato a 5 e ad ogni istruzione LOOP CICLO, CL viene decrementato di 1. Il registro AL viene usato solo come accumulatore, il registro BL inizializzato ad 1, viene incrementato di 2 ad ogni iterazione.