Напишите программу, вычисляющую сумму/разность соответствующих элементов этих массивов - Assembler

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

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

2. Создайте два массива из 20 элементов. При объявлении массивов заполните их числами. Напишите программу, вычисляющую сумму/разность соответствующих элементов этих массивов. Результат сохраняйте в первый массив.

Решение задачи: «Напишите программу, вычисляющую сумму/разность соответствующих элементов этих массивов»

textual
Листинг программы
LOCALS
 
.model small
 
.stack 100h
 
.data
        A       db      1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
        B       db      21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40
 
.code
 
main    proc
        mov     ax,     @data
        mov     ds,     ax
 
        mov     cx,     20
        lea     si,     A
        lea     di,     B
@@For:
        mov     al,     [di]
        add     [si],   al
        add     si,     1
        add     di,     1
        loop    @@For
 
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main

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

  1. Сначала определяются локальные переменные
  2. Устанавливается размер стека
  3. В сегменте данных объявляются два массива: A с элементами 1-20 и B с элементами 21-40
  4. В сегменте кода начинается процедура main
  5. Загружается адрес сегмента данных в регистр ax и затем в регистр ds
  6. Регистру cx присваивается значение 20 – количество элементов в массиве
  7. В регистры si и di загружаются адреса начала массивов A и B
  8. В цикле происходит суммирование соответствующих элементов массивов A и B с использованием инструкций mov, add и loop
  9. После выполнения цикла процедура main завершается с помощью инструкций mov, int
  10. Завершение программы и возврат к операционной системе

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

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