Заполнение блока памяти из 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возвращает управление из подпрограммы.