Подсчет элементов не равных нулю - Assembler
Формулировка задачи:
есть программа подсчета нечетных элементов. как написать подсчет элементов не равных нулю?
mov ax, data
mov ds, ax
lea bx, mas ;берём в bx адрес первого элемента
mov cx, len ;счетчик цикла
xor ax, ax ;обнуляем регистр
cikl: mov al, [bx] ;прибавляем к al байт, адрес которого хранится в bx
test ax,1 ;проверяем на четность
jnz next
inc numb; увеличиваем, если четно
next:
inc bx ;переходим к следующему элементу
loop ciklРешение задачи: «Подсчет элементов не равных нулю»
textual
Листинг программы
test ax,ax jz next
Объяснение кода листинга программы
- Создается инструкция
test ax, ax, которая выполняет логическое И между регистрами ax и ax. - Инструкция
jz nextвыполняет условный переход к меткеnext, если результат логического И равен нулю.