Вычислить элементы нового массива из значений трёх заданных массивов - 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 для перехода к следующему элементу массива
- Цикл продолжается до тех пор, пока не будет выполнено условие окончания цикла
- Завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д