Bonjour a tous,
Je suis completement null en assembler, et il faut que je fasse afficher le résultat de la factoriel de 4 soit 24.
est ce que quelqu'un peut m'aider s.v.p.
1000000000000 Merci.
voici mon bout de code....
TITLE factoriel
PILE segment stack
dw 100 dup(?)
Basdepile equ this word
PILE ends
Data segment
N dw 4
fact dw ?
Data ends
Code segment
assume CS:code, DS:Data, SS:Pile
Debut:
MOV AX,Data
MOV DS,AX
MOV AX,Pile
MOV SS, AX ; initialise le segment de pile
MOV SP, basdepile ; copier l'adresse de la base de la pile dans SP
mov BX,n ; sauvegarde la valeur de n
mov ax,bx
call factoriel
Fin:
pop AX ; le résultat calculé par la fonction factoriel est dans AX
mov fact, AX
mov AX,4c00h
int 21h
factoriel proc near
push ax
Continuer:
CMP AX,1
JLE depiler ; déplier jusquà ce n = 1
dec AX
push AX
JMP continuer
Depiler:
POP AX
POP CX
mul CX
Push AX
CMP BX,CX
Ja depiler
ret
factoriel endp ; fin de la procédure
code ends
end debut ; fin du programme code