Cheyanne
C'est la question complète ? Si c'est le cas, suivez ce code
TITLE écrivez un programme qui accepte n nombres entiers de l'utilisateur et additionnez les nombres et affichez la somme des nombres
moyens des n nombres
INCLUDE Irvine32.inc
WriteString PROTO ; facultatif
ReadInt PROTO ; facultatif
.data
mess1 BYTE "Entrez 10 nombres entiers : ",0
mess2 BYTE "la somme de dix nombres entiers : ",0
myarray SDWORD 10 DUP(?)
.code
main PROC
mov esi, OFFSET myarray
mov ecx, LENGTHOF myarray
call inputfornum ; Appelez la procédure pour saisir les nombres
mov esi, OFFSET myarray
mov ecx, LENGTHOF myarray
call arraysum ; procédure d'appel pour ajouter les numéros
Appel displayum ; appel de la procédure pour afficher la somme
exit
main ENDP
inputfornum PROC ; démarrage de la procédure
inputfornum pushad ; sauvegarde les registres
mov edx, OFFSET mess1 ; "Entrez les chiffres"
; ======DEBUT de la boucle
L1 :
Appel WriteString
appel ReadInt ; entrez le numéro numéro
Call Crlf
mov [esi], eax
add esi, TYPE myarray
loop L1 ; boucle en arrière si ECX n'est pas égal à zéro
popad ; restaurer les registres
ret ; retour à la procédure qui fait l'appel
inputfornum ENDP ; Fin du
tableau PROC somme PROC ;
pousser esi ; Enregistrer l'esi, et ecx
push ecx
mov eax,0
L2:
Add eax, [esi]
add esi,4
loop L2
pop ecx ; restaurer ecx, esi
pop esi
ret
arraysum ENDP
; procédure pour afficher la somme
displayum
PROC
pushad
mov edx, OFFSET mess2
appel writeString
appel writeInt
appel Crlf
popad
ret
displayum ENDP
END main
le programme demande dix numéros à un utilisateur et les ajoute en utilisant la procédure
si vous avez des questions, n'hésitez pas à m'envoyer un e-mail à rdeus@ben,bfit.edu