Страница 2 из 2
Добавлено: Пт янв 23, 2009 15:03:18
drakoshaprog
у меня есть переменная
Digit: .byte 4
Где она создается и хранит свое значение ?
как сделать чтобы она менялась от 0 до 9 и если доходит до 9 то принимает снова 0 и по новой ?
как в асемблере сравнивать ?
Добавлено: Пт янв 23, 2009 15:57:17
john_rise
Это вы резервируете 4 байта в ОЗУ (компилятор сам выберет где именно в ОЗУ он будет хранить 4 байта). Если вам нужно что-бы значение менялось от 0 до 9-ти, то зачем вы резервируете аж 4 байта? В 4-х байтах можно разместить 4`294`967`296 комбинаций кода.
Добавлено: Пт янв 23, 2009 16:16:28
john_rise
Сравнивать в ассемблере можно
два регистра между собой:
Регистр с константой:
Где К-это 8-ми разрядная (8-ми битная) константа
Так же есть сравнение с учётом бита переноса, это нобходимо для сравнения 2-х и более байтных чисел (регистровых пар).
Добавлено: Пт янв 23, 2009 17:07:54
drakoshaprog
4 так у меня 2 числа отвечают за часы еще 2 за минуты ))
как в асемблере прибавить к десятичному числу 1 ?
(может кто знает хорошую книгу по асемблеру?)
еще я тут не могу подобрать точно частоту ((
у меня резонатор на 20 MГц
мне нужно чтобы прерывание было раз в минуту = 60 сек
ldi Temp,0b00000101 ;тактовый сигнал = CK/1024
out TCCR1B,Temp
я выбрал CK/1024
а как подобрать OCR1AH и OCR1AL ?
я наугад поставил нули
ldi Temp,0x00 ;инициализация компаратора
out OCR1AH,Temp
ldi Temp,0x00
out OCR1AL,Temp