Заполнение блока памяти из 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
Объяснение кода листинга программы
- Устанавливается значение переменной
ax
равным 1. - Помещается метка
lp
для использования в цикле. - Выполняется проверка значения переменной
ax
на делимость на 3. - Если значение переменной
ax
равно 0 (делится на 3), происходит переход на меткуzer
. - В противном случае значение переменной
ax
сохраняется в памяти по адресу, указанному переменнойbx
. - Происходит безусловный переход на метку
m1
. - Помещается метка
zer
для обработки случая, когда значение переменнойax
равно 0. - В памяти по адресу, указанному переменной
bx
, сохраняется значение 0. - Помещается метка
m1
для обработки перехода после сохранения значения переменнойax
в памяти. - Значение переменной
bx
увеличивается на 2, чтобы указать на следующий блок памяти. - Значение переменной
ax
увеличивается на 1. - Цикл продолжается, пока не будет достигнуто заданное количество итераций (N).
- Команда
ret
возвращает управление из подпрограммы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д