люди как реализовать что-то вроде цикла на асме? типа если один регистр больше другого, то перейти на метку, допуситм а1?
slesh, не катит. Из-за таких вот советов, люди начинают ассоциировать ассемблер с каким-то макро-извращением. Теряется красота... но это мое мнение.
2 Ni0x я знаю. Но судя по задаваемому вопрос топикстартер не читал описание инструкций j* jn* я просто предлогаю альтернативное решение. я конечно сам не сторонник макросов, но бывает легче написать в макросном виде нежели в обычном. типа условие (ecx<>0 and ((ecx>10) and (eax<20) or (ecx>100) and (eax<200) or (ecx>1000) or (eax<2000)) легче в виде макроса написать.
Цикл издревне в сияруси юзается посредством регистра cx-сейчас ecx Делается метка цикла например loop1: и далее идет тело цикла например cmp eax,0 jz end_loop;перейти если eax=0 inc eax;инкремент eax к примеру loop loop1;как дойдет до этого места декриментируется ecx и переход обратно на метку loop1 и вот тебе и весь цикл П.С.В ecx должно быть нужное тебе значение.Тоесть сколько циклов например 10=10h
Вообще говоря использовать можно хоть ESP как счетчик.. если сместо loop loop1 поставить dec esp / jnz loop1 Поправка - если в ECX был ноль, цикл выполнится 4294967295 раз. ЗЫ. Топикстартеру - читать описание инструкций loop, jmp, j*/jn*. Тема закрыта