По формуле члена ряда найти сумму первых 13 членов - Assembler

Узнай цену своей работы

Формулировка задачи:

Снова я , помогите с программой ( говоря простым языком , кто не занят ,или кого не затруднит , напишите ее -_-) Команда LOOP. Обработка данных в цикле (без использования ветвлений) По заданной формуле члена ряда с номером k: Ak=5•k+1 найти сумму первых 13 членов.

Решение задачи: «По формуле члена ряда найти сумму первых 13 членов»

textual
Листинг программы
LOCALS
 
.model small
 
.stack 100h
 
.data
        Sum     dw      ?
.code
 
main    proc
        mov     ax,     @data
        mov     ds,     ax
 
        mov     bx,     0       ;сумма
        mov     cx,     13      ;cx=k - номер члена ряда
        mov     di,     5
@@For:
        mov     ax,     cx
        mul     di              ;Ak=ax=5*k+1
        add     ax,     1
 
        add     bx,     ax      ;S:=S+Ak
 
        loop    @@For
 
        mov     Sum,    bx
 
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main

Объяснение кода листинга программы

  1. Выделяются переменные:
    • Sum - хранит сумму первых 13 членов ряда (16-битное беззнаковое целое)
  2. Инициализируется сегмент данных:
    • ax загружается адрес сегмента данных (@data)
    • ds принимает значение ax для установки сегмента данных
  3. Инициализируются начальные значения переменных:
    • bx устанавливается в 0 для хранения суммы
    • cx устанавливается в 13 для представления номера члена ряда
    • di устанавливается в 5 (по-видимому для использования в вычислениях)
  4. Цикл для вычисления суммы первых 13 членов: 4.1. Вычисляется значение члена ряда: ax = cx * di + 1 4.2. Это значение добавляется к общей сумме: bx = bx + ax 4.3. Происходит уменьшение cx на 1 (используя команду LOOP) и если cx не равно 0, цикл продолжается
  5. Когда цикл завершается, значение суммы сохраняется в переменной Sum
  6. Программа завершается командами:
    • ax устанавливается в 4C00h для завершения программы
    • Происходит вызов 21h прерывания для завершения программы Итак, программа вычисляет сумму первых 13 членов ряда с использованием цикла и сохраняет эту сумму в переменной Sum.

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы