Обработка одномерных массивов - Assembler (223539)

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

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

Здравствуйте! Нужна помощь по данному заданию. Спасибо большое за помощь!

Решение задачи: «Обработка одномерных массивов»

textual
Листинг программы
.model small
.386
 
.data
B db 1,2,15 dup(?)
 
.stack 
db 255 dup(?)
 
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
 
mov cx,15
lea si,B
lea di,B+2
sum:
lodsb
mov bl,al
lodsb
add al,bl
 
stosb
 
dec si
loop sum
 
mov ah,4Ch
mov al,00h
int 21h
end start

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

  1. Устанавливаются сегменты данных и стека
  2. Задаётся начальное значение счётчика циклу
  3. Указатели на начало и конец строки B
  4. Начинается цикл обработки строки
  5. Загружается в регистр BL первый байт строки
  6. Загружается в регистр AL второй байт строки
  7. Складываются значения регистров BL и AL
  8. Записывается результат в буферный регистр AL
  9. Выполняется операция вычитания (счётчик цикла уменьшается на 1)
  10. Если счётчик не равен нулю, то происходит переход к следующей итерации цикла
  11. Завершающая обработка: выводится сообщение об успешном выполнении программы
  12. Передача управления за пределы программы

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

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