Написать программу на языке ассемблера для отображения суммы чисел от 1 до 10?

1 Ответы


  • Это полный вопрос? Если это так, следуйте этому коду

    TITLE, напишите программу, которая принимает n целых чисел от пользователя, суммирует числа и отображает сумму

    средних чисел n чисел

    ВКЛЮЧАЙТЕ

    Irvine32.inc WriteString PROTO; необязательный
    ReadInt PROTO; необязательный

    .data

    mess1 BYTE "Введите 10 целых чисел:", 0

    mess2 BYTE "сумму десяти целых чисел:", 0
    myarray SDWORD 10 DUP (?)

    .code
    main PROC

    mov esi, OFFSET myarray
    mov ecx, LENGTHOF myarray
    call inputfornum ; Вызвать процедуру для ввода чисел
    mov esi, OFFSET myarray
    mov ecx, LENGTHOF myarray
    call arrayum; процедура вызова для добавления номеров
    Вызов отображает сумму; вызов процедуры для отображения суммы

    выхода
    основного

    ENDP inputfornum PROC; запуск процедуры

    inputfornum pushad; сохраняем регистры

    mov edx, OFFSET mess1; «Введите цифры»  

    ; ====== НАЧАЛО цикла
    L1:

    Вызов WriteString
    call ReadInt;
    введите номер number Call Crlf
    mov [esi], eax
    add esi, TYPE myarray

    loop L1; возвратиться, если ECX не равен нулю
    popad; восстановить регистры
    ret; вернуться к процедуре, выполняющей вызов
    inputfornum ENDP; Конец

    массива PROC PROC;

    push esi; Сохраните esi и ecx
    push ecx
    mov eax, 0

    L2:
    добавить eax, [esi]
    add esi, 4
    loop L2

    pop ecx; восстановить ecx, esi
    pop esi

    ret
    массив ENDP

    ; процедура для отображения суммы

    отображает сумму PROC

    pushad
    mov edx, OFFSET mess2
    call writeString
    call writeInt
    call Crlf

    popad
    ret
    отображается сумма ENDP

    END main

    программа запрашивает у пользователя десять чисел и добавляет их, используя процедуру,

    если у вас есть какие-либо вопросы, не стесняйтесь писать мне по электронной почте rdeus @ ben, bfit.edu

Напишите свой ответ

Ваш ответ появится после модерации