Цитата(Павлик @ Jan 25 2008, 08:07)

А извените за наглость , как же все таки выходить или вызывать подпрограммы при этом сравнивая 2 числа ?
К примеру нам надо сравнить 2 числа 0х35 (образно)
Непонятная фраза "сравнить два числа 0х35 "
Как я понимаю по равенству с константой выйти из цикла. извольте:
00 до 0x34Код
mode_0_255: // выводит в порт Д значения от 00 до 0x34
clr tmp
ldi tmp2,0x35 //загрузим константу в регистр
m_01:
rcall wait //здесь не использовать регистр tmp и tmp2!!! (или сохранять его где нибудь)
out portd,tmp
inc tmp
cp tmp,tmp2
brlo m_01//меньше ли tmp tmp2? если да то переход на m_01
ret
или так(
00 до 0x34):
Код
mode_0_255: // выводит в порт Д значения от 00 до 0x34
clr tmp
m_01:
rcall wait //здесь не использовать регистр tmp и tmp2!!! (или сохранять его где нибудь)
out portd,tmp
inc tmp
cpi tmp,0x35
brlo m_01//меньше ли tmp 0х35? если да то переход на m_01
ret
а можно так(
00 до 0x35):
Код
mode_0_255: // выводит в порт Д значения от 00 до 0x35
clr tmp
out portd,tmp//это для начального значения tmp (до инкримента)
m_01:
rcall wait //здесь не использовать регистр tmp и tmp2!!! (или сохранять его где нибудь)
inc tmp
cpi tmp,0x35
out portd,tmp
brlo m_01//меньше ли tmp 0х35? если да то переход на m_01
ret
или так(
00 до 0x35):
Код
mode_0_255: // выводит в порт Д значения от 00 до 0x35
clr tmp
ldi tmp2,(0x35+1) //загрузим константу в регистр
m_01:
rcall wait //здесь не использовать регистр tmp и tmp2!!! (или сохранять его где нибудь)
out portd,tmp
inc tmp
cp tmp,tmp2
brlo m_01//меньше ли tmp tmp2(0x36)? если да то переход на m_01
ret
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...