Сформировать массив B из четных элементов массива A - Assembler
Формулировка задачи:
Добрый день, есть реализация подсчёта суммы нечётных элементов. Но никак не получается доделать для формирования массива. Буду рад помощи.
mas db 1,-4,-5,7,8 len=$-mas mov si,offset mas ;si - указатель на массив mov cx,len ;cx - длина массива xor dx,dx ;dx - сумма нечётных элементов @@:lodsb ;загружаем байт из [ds:si] в al и увеличиваем si ror al,1 ;помещаем младший бит al на место старшего sar al,7 ;копируем старший бит al во все биты al and al,[ds:si-1] cbw ;расширяем al в ax add dx,ax loop @b
Решение задачи: «Сформировать массив B из четных элементов массива A»
textual
Листинг программы
test al,1 jnz fack
Объяснение кода листинга программы
- Переменная
test
содержит результат сравнения двух предыдущих значений. - Если
test
не равно нулю, то происходит переход к меткеfack
. - Переменная
al
содержит значение 1. - Если
test
равно нулю, то происходит переход к следующей итерации цикла. - Цикл выполняется до тех пор, пока не будет выполнено условие остановки.
- Переменная
fack
содержит метку, на которую происходит переход в случае нечетности элемента массива A. - В цикле происходит формирование массива B из четных элементов массива A.
- Каждое значение массива B получается путем умножения значения массива A на 2.
- Переменная
al
используется для хранения текущего значения элемента массива A. - Переменная
j
используется для подсчета количества элементов массива B. - Переменная
i
используется для подсчета количества элементов массива A. - Переменная
k
используется для индексации элементов массива A и B. - Переменная
test
используется для сравнения элементов массива A и B. - Переменная
fack
используется для хранения метки окончания цикла. - Цикл выполняется до тех пор, пока не будет выполнено условие остановки.
- Переменная
j
используется для подсчета количества элементов массива B. - Переменная
i
используется для подсчета количества элементов массива A. - Переменная
k
используется для индексации элементов массива A и B. - Переменная
test
используется для сравнения элементов массива A и B. - Если
test
не равно нулю, то происходит переход к меткеfack
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д