Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сравнить пару регистров и константу
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
add
Коллеги, прошу помощи. Необходимо сравнить пару регистров и константу (db) на асме, по условию RH:RL<const перейти к обработке события. Задачка вроде несложная, но чего-то получается криво как то :


.equ const_l=low(point1)
.equ const_h=high(point1)

..

cpi RH,const_h
brlo a
cpi RL,const_l
brlo b
rjmp not_a
b:
cpi RH,const_h
breq a
rjmp not_a


a: ;..событие......


not_a:


unsure.gif
shamray
Сравниваеш вначале старшие разряды, если RH > const(H), то переход, если равны, то далее сравниваеш младшие части. Вот и все.
add
"Сравниваеш вначале старшие разряды, если RH > const(H), то переход, если равны, то далее сравниваеш младшие части. Вот и все."
shamray :-) я вот тоже так решил .но.... а можно в коде?
vet
CPI R30,LOW(10000)
MOV R26,HIGH(10000)
CPC R31,R26

"и никаких гвоздей!" (с)
add
vet Пасиба :-).. Ведь просто так.. и правда "никаких гвоздей"..

с этим я несовсем согласен:
MOV R26,HIGH(10000) наверное ldi....
но суть понятна... :-)
PowerF1
Когда используются команды breq, brlo и т.п. после сравнения cpi двух чисел, переход произойдет, если эти числа записаны в двоичном коде. Пробуйте.
add
Цитата
Когда используются команды breq, brlo и т.п. после сравнения cpi двух чисел, переход произойдет, если эти числа записаны в двоичном коде. Пробуйте.


Простите непонял к чему Вы это?! если про это:(MOV R26,HIGH(10000) ) то компилятор покроет трехэтажным матом :-)
Вот это тоже странно: ("если эти числа записаны в двоичном коде"...)
Прошу Вас PowerF1 обьяснить подробнее что Вы хотели этим сказать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.