Подсчитать количество четных элементов массива, и определить индекс последнего четного - 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

Объяснение кода листинга программы

  1. Устанавливаем сегменты данных и стека на начало сегмента данных.
  2. Определяем переменные:
    • massiv — массив, содержащий элементы: 5, 4, 3, 6, 7, 8, 22, 14;
    • kolvo4etnelem — счётчик количества четных элементов;
    • indeksposl4etn — счётчик индекса последнего четного элемента.
  3. Перемещаем указатель на начало массива в регистр bx.
  4. Организуем цикл по всем элементам массива:
    • Проверяем каждый элемент массива на чётность, используя битовое ИЛИ с 1. Если элемент чётный, то увеличиваем счётчик kolvo4etnelem и перемещаем указатель на следующий элемент;
    • Если элемент нечётный, то переходим к следующему элементу без изменений.
  5. Если все элементы проверены, то выводим сообщение об ошибке, так как в массиве нет чётных элементов.
  6. Если есть чётные элементы, то перемещаем указатель на начало массива в регистр bx и начинаем поиск последнего чётного элемента.
  7. Увеличиваем счётчик kolvo4etnelem и перемещаем указатель на следующий элемент до тех пор, пока не будет найден нечётный элемент.
  8. Сохраняем индекс последнего чётного элемента в регистре bx.
  9. Выводим сообщение с количеством найденных чётных элементов и индексом последнего чётного элемента.
  10. Завершаем работу программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы