Все ненулевые элементы поля длины 124 10 с начальным адресом 021А заменить нулем, а нулевые - единицей - Assembler

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

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

Написать программу на языке ассемблер: Все ненулевые элементы поля длины 124 10(10 в нижнем индексе) с начальным адресом 021А заменить нулем, а нулевые - единицей.

Решение задачи: «Все ненулевые элементы поля длины 124 10 с начальным адресом 021А заменить нулем, а нулевые - единицей»

textual
Листинг программы
mov edi,21Ah  ;Начальный адрес
xor eax,eax   ;eax = 0
mov ecx,124   ;Длина массива
@@:scasb      ;Сравниваем [edi] и al, увеличиваем edi на единицу
   setz [edi] ;Если [edi]=al то [edi]=1 иначе [edi]=0
loop @b       ;Уменьшаем ecx на единицу, если ecx>0 - продолжаем цикл

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

  1. mov edi,21Ah ; Начальный адрес
  2. xor eax,eax ; eax = 0
  3. mov ecx,124 ; Длина массива
  4. @@:scasb ; Сравниваем [edi] и al, увеличиваем edi на единицу
  5. setz [edi] ; Если [edi]=al то [edi]=1 иначе [edi]=0
  6. loop @b ; Уменьшаем ecx на единицу, если ecx>0 - продолжаем цикл

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


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

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

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