Все ненулевые элементы поля длины 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 - продолжаем цикл
Объяснение кода листинга программы
- 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 - продолжаем цикл
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д