Подсчитать количество четных элементов массива, и определить индекс последнего четного - Assembler
Формулировка задачи:
Не могу понять как организовать нахождение последнего чётного. В задании Количество чётных я просто увеличивал счётчик,но вот как найти последний элемент не могу понять.
.model small .stack 100h .data massiv db 5,4,3,6,7,8,22,14 kolvo4etnelem db ? indeksposl4etn db ? .code start: mov ax,@data mov ds,ax mov es,ax mov cx,8 proverkanaindeks: proverkana4etn: mov al,massiv[bx] test al,1 jz esli4etnoe inc bx jmp proverkanaindeks jmp proverkana4etn esli4etnoe: inc kolvo4etnelem inc bx cmp bx,8 jne proverkana4etn mov ax,4c00h int 21h
Решение задачи: «Подсчитать количество четных элементов массива, и определить индекс последнего четного»
textual
Листинг программы
.model small .stack 100h .data massiv db 5,4,3,6,7,8,22,14 kolvo4etnelem db ? indeksposl4etn db ? .code start: mov ax,@data mov ds,ax mov es,ax mov cx,8 proverkana4etn: mov al,massiv[bx] test al,1 jz esli4etnoe inc bx jmp proverkana4etn esli4etnoe: inc kolvo4etnelem inc bx cmp bx,8 jne proverkana4etn mov ax,4c00h int 21h
Объяснение кода листинга программы
- Устанавливаем сегменты данных и стека на начало сегмента данных.
- Определяем переменные:
massiv
— массив, содержащий элементы: 5, 4, 3, 6, 7, 8, 22, 14;kolvo4etnelem
— счётчик количества четных элементов;indeksposl4etn
— счётчик индекса последнего четного элемента.
- Перемещаем указатель на начало массива в регистр
bx
. - Организуем цикл по всем элементам массива:
- Проверяем каждый элемент массива на чётность, используя битовое ИЛИ с 1. Если элемент чётный, то увеличиваем счётчик
kolvo4etnelem
и перемещаем указатель на следующий элемент; - Если элемент нечётный, то переходим к следующему элементу без изменений.
- Проверяем каждый элемент массива на чётность, используя битовое ИЛИ с 1. Если элемент чётный, то увеличиваем счётчик
- Если все элементы проверены, то выводим сообщение об ошибке, так как в массиве нет чётных элементов.
- Если есть чётные элементы, то перемещаем указатель на начало массива в регистр
bx
и начинаем поиск последнего чётного элемента. - Увеличиваем счётчик
kolvo4etnelem
и перемещаем указатель на следующий элемент до тех пор, пока не будет найден нечётный элемент. - Сохраняем индекс последнего чётного элемента в регистре
bx
. - Выводим сообщение с количеством найденных чётных элементов и индексом последнего чётного элемента.
- Завершаем работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д