Вычисление интеграла по формуле трапеции - Assembler

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

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

по заданным вещественным числам c и d(c<d) вычислить используя формулу трапеции n=40

Решение задачи: «Вычисление интеграла по формуле трапеции»

textual
Листинг программы
.386 
Cseg    segment use16
    assume  cs:Cseg, ds:Cseg
two dd 2
a dq 2.0
b dq 3.000
n dw 40
res dq ?
 
start:
        mov ax,cs
        mov ds,ax
        mov cx,n
                sub cx,1
        fldz;0
        fld a;a,0
        fld a;a,a,0
        fsin; arc,a,0
        fidiv two; arc/2,a,0
               faddp st(2),st; a,sum
        fld b; b,a,sum
        fld b; b,b,a,sum
                fsin; 
            fidiv two;arc/2,b,a,sum
        faddp st(3),st;b,a,sum
                fsub st(0),st(1);b-a,a,sum
        fidiv n; b-a/n, a,sum
                fxch st(1); a,h,sum
                fldz ;0,a,h,sum
                dec cx;
    m1: 
    fxch st(1);x,0,h,sum
    fadd st(0),st(2);x,rabreg,h,sum
    fst st(1);x,x,h,sum
    fld1;1,x,x,h,sum
    fpatan;arc,x,h,sum
    fadd st(3),st;arc,x,h,sum
    loop m1
    fxch st(3); sum,x,h,arc
    fmul st(0),st(2); sum,x,h,arc
 
    fst res
    mov ax,4c00h
    int 21h
        ends
        end start

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

Выполняемый код на ассемблере выполняет вычисление интеграла по формуле трапеции. Список операций, которые выполняет код, выделен ниже:

  1. Переменные two, a, b и n инициализируются начальными значениями.
  2. Переменная res используется для хранения результата.
  3. Цикл начинается, где переменная cx используется для итерации от 0 до n-1.
  4. В каждой итерации выполняются следующие действия:
    • Вычисляется трапеция, используя текущее значение a и b.
    • Вычисляется сумма двух последних трапеций.
    • Вычисляется разность между текущим и предыдущим значением a.
    • Вычисляется среднее значение разности между текущим и предыдущим значением a и b.
    • Переменная cx уменьшается на 1.
  5. После завершения цикла выполняются действия для возврата значения результата.
  6. Программа завершается.

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

10   голосов , оценка 3.7 из 5