Заполнение блока памяти из N слов рядом натуральных чисел - Assembler

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

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

Срочно нужна помощь с лабой. Вот задание: Составить процедуру (тип NEAR) заполнения блока памяти из N слов рядом натуральных чисел. Если число делится на 4 то вместо него заносится 0. Адрес начала блока в регистре ВХ

Решение задачи: «Заполнение блока памяти из N слов рядом натуральных чисел»

textual
Листинг программы
mov ax,1
lp: test ax,3
jz zer
mov [bx],ax
jmp m1
zer: mov word ptr [bx],0
m1: add bx,2
inc ax
loop lp
ret

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

  1. Устанавливается значение переменной ax равным 1.
  2. Помещается метка lp для использования в цикле.
  3. Выполняется проверка значения переменной ax на делимость на 3.
  4. Если значение переменной ax равно 0 (делится на 3), происходит переход на метку zer.
  5. В противном случае значение переменной ax сохраняется в памяти по адресу, указанному переменной bx.
  6. Происходит безусловный переход на метку m1.
  7. Помещается метка zer для обработки случая, когда значение переменной ax равно 0.
  8. В памяти по адресу, указанному переменной bx, сохраняется значение 0.
  9. Помещается метка m1 для обработки перехода после сохранения значения переменной ax в памяти.
  10. Значение переменной bx увеличивается на 2, чтобы указать на следующий блок памяти.
  11. Значение переменной ax увеличивается на 1.
  12. Цикл продолжается, пока не будет достигнуто заданное количество итераций (N).
  13. Команда ret возвращает управление из подпрограммы.

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

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