с loopz?
суть в том что я после команды cmp делал еще вывод значений регистров при этом вывод отрабатывал только один раз НО строка о том что элементов не равных нулю нет,как так ?
1.цикл пробегает весь массив
2.отладочаня печать в массиве выводится только дин раз
3.выводится сообщение что нет элементов кроме 0 хотя все команды в цикле вроде соблюдают нужыне условия (loopz пока zf=1 и ecx>0)
.data
intarray sword 0,0,0,0,1,20,35,-12,66,4,0
nonemsg byte "none zero element",0
.code
main proc
mov ebx,offset intarray
mov ecx,lengthof intarray
l1:
cmp word ptr [ebx],0
jnz found
add ebx,2
loopz l1
mov edx,offset nonemsg
call WriteString
jmp quit
found:
movsx eax,word ptr [ebx]
call WriteInt
quit:
call CrLf
exit
main endp
end main
1. add заново выставляет флаги, и после него zf=0 2. см ниже
Можно сохранять значение в стек до увеличения потом восстанавливать например
Обсуждают сегодня