Вычислить элементы нового массива из значений трёх заданных массивов - 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
Объяснение кода листинга программы
- Объявление массивов A, B, C и X
- Загрузка сегмента данных в регистр DS
- Переменная CX и SI используются как счётчики для перебора элементов массива
- Начальное значение переменной AX устанавливается равным 4
- Выполняется деление AX на элемент массива C, сохранённый в регистре BX
- Результат деления вычитается из элемента массива A, сохранённого в регистре AX
- К полученному результату прибавляется элемент массива B, сохранённый в регистре AX
- Полученное значение записывается в элемент массива X
- Значение счётчика SI увеличивается на 2 для перехода к следующему элементу массива
- Цикл продолжается до тех пор, пока не будет выполнено условие окончания цикла
- Завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д