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