Вычислить элементы нового массива из значений трёх заданных массивов - Assembler

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

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

Даны 3 массива (a,b,c) с любыми значениями (вписать при объявлении массива) , посчитать по формуле b+(4/c-a). Размерность массивов 5 элементов в каждом! P.s Помогите написать программу, просто с ассемблером не давно знаком, и что то я еще в нем ничего не понимаю((

Решение задачи: «Вычислить элементы нового массива из значений трёх заданных массивов»

textual
Листинг программы
.model small
 
.stack 100h
 
.data
        A       dw      1, 2, 3, 4, 5
        B       dw      6, 7, 8, 9, 10
        C       dw      11, 12, 13, 14, 15
        X       dw      5 dup(0)
.code
 
main    proc
        mov     ax,     @data
        mov     ds,     ax
 
        mov     cx,     5
        mov     si,     0
@@ForI:
        mov     ax,     4
        cwd
        mov     bx,     C[si]
        idiv    bx              ;ax:=4/C[i]
        sub     ax,     A[si]   ;ax:=(4/C[i])-A[i]
        add     ax,     B[si]   ;ax:=B[i]+(4/C[i])-A[i]
        mov     X[si],  ax
        add     si,     2       ;перейти к следующему элементу массива
        loop    @@ForI
 
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main

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

  1. Объявление массивов A, B, C и X
  2. Загрузка сегмента данных в регистр DS
  3. Переменная CX и SI используются как счётчики для перебора элементов массива
  4. Начальное значение переменной AX устанавливается равным 4
  5. Выполняется деление AX на элемент массива C, сохранённый в регистре BX
  6. Результат деления вычитается из элемента массива A, сохранённого в регистре AX
  7. К полученному результату прибавляется элемент массива B, сохранённый в регистре AX
  8. Полученное значение записывается в элемент массива X
  9. Значение счётчика SI увеличивается на 2 для перехода к следующему элементу массива
  10. Цикл продолжается до тех пор, пока не будет выполнено условие окончания цикла
  11. Завершение работы программы

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

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