Дан массив, посчитать кол-во байт, в которых нет единиц, стоящих рядом - Assembler

Узнай цену своей работы

Формулировка задачи:

Здраствуйте, помогите написать программку: Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом.

Решение задачи: «Дан массив, посчитать кол-во байт, в которых нет единиц, стоящих рядом»

textual
Листинг программы
xor eax,eax
mov ecx,11
@b:movzx edx,byte[a+ecx-1]
   bt    dword[x],edx
   adc   eax,0
loop @b
mov [n],eax

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

  1. Присваиваем EAX и ECX начальные значения
  2. Начинаем цикл, который будет выполняться 11 раз (используя ECX как счётчик)
  3. В каждой итерации берем байт из массива (используя ECX как смещение и AX как сам массив)
  4. Сравниваем этот байт с нулем (используя BT как оператор побитового И)
  5. Если байт равен нулю, то к EAX прибавляем единицу (используя ADC как оператор сложения с дополнением)
  6. После выполнения всех итераций, значение EAX будет содержать количество нулевых байтов
  7. Сохраняем это значение в переменной n (используя MOV как оператор перемещения)

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


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

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

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