Voila j´ai fait le code de la formule posté en debut de poste. mais mtn j´aimerais utiliser les boucles , comment je pourrais faire?
; groupe: 13211
. model small
. stack 100h
;-------------------------------------------------
--------
; Deuxieme programme -
; Calcul de la tangente avec la formule -
; de Taylor
;1+2*(x-pi/4)+4*(x-pi/4)+16*(x-pi/4)+256*(x-pi/4)
;-------------------------------------------------
--------
. data
;-------------------------------------------------
--------
; Donnees -
;-------------------------------------------------
--------
cent5 DW 105 ; constante de ( x-pi/4): deja calcul‚
deux DW 2 ; constante utile à la multiplication
trois DW 3 ; idem
quatre DW 4 ; idem
seize DW 16 ; idem
deuxm DW 2000 ; constante *1000 utile à la division
troism DW 3000 ; idem
quatrem DW 4000 ; idem
temp DW ? ; reponse temporaire
mille DW 1000 ; correspond a 1 que je calcule a la fin
total DW ? ; Reponse finale
. code
;-------------------------------------------------
--------
; - procedure principale -
;-------------------------------------------------
--------
main proc
MOV AX,@data ; Charge les donn‚es
MOV DS, AX ; On utilise des registre 16 bits
; Calcul de ( 2* cent5)
MOV AX,cent5 ; cent5 correspond a ( x-pi/4)
MUL deux ;
ADD temp,AX ; 2*cent5 enregistr‚ dans temp
; calcul de ( 4* cent5) exp 2/2000
MOV AX,cent5 ; x-pi/4 deplac‚ vers AX
MUL cent5 ; multiplie AX par lui meme pour le carre
MUL deux ; multiplie par 2 car 2exp 2 = 4
DIV deuxm ; division par 2000 pour eviter l´overflow
ADD temp,AX ;
; calcul de ( 16 * cent5) exp3/3000
MOV AX,cent5
MUL cent5 ; mise au cube
SUB DX,DX ; vider le registre DX pour eviter l´overflow
DIV troism ;
MUL quatre ; multiplie par 4 pour car 2exp 4=16
ADD temp,AX ;
; calcul de : ( 256 * cent5) exp 4 /4000
MOV AX,cent5 ;
MUL cent5 ;
SUB DX,DX ; Vider le registre DX
DIV quatrem ;
MUL seize ; multiplie par 16 car 2exp 16= 256
ADD temp,AX ;
; Ajout de 1000 ( initialement 1) dans temp puis dans total
MOV AX,mille ;
ADD temp,AX ;
MOV AX,temp ;
MOV total,AX ; le resultat final se trouve dans total
;-------------------------------------------------
--------------
; - Fin du programme -
;-------------------------------------------------
--------------
MOV AX,4C00h
INT 21h
main endp
end main