Écrire un programme en langage assembleur pour afficher la somme des nombres de 1 à 10 ?

1 Réponses


  • 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

Ecrivez votre réponse

Votre réponse apparaîtra après modération