http://www.forum.getchip.net/ |
|
Помогите разобраться с флагами http://www.forum.getchip.net/viewtopic.php?f=16&t=185 |
Страница 1 из 1 |
Автор: | xfly [ 27 фев 2012, 02:40 ] |
Заголовок сообщения: | Помогите разобраться с флагами |
В часности интересуют флаги Н и С. В доках сказанно: Н - Флаг половинного переноса. Этот флаг устанавливается в «1», если произошел перенос из младшей половины байта (из 3-го разряда в 4-й) или заем из старшей половины байта при выполнении некоторых арифметических операций С - Флаг переноса. Этот флаг устанавливается в «1», если в результате выполнения операции произошел выход за границы байта Вот я и не могу понять почему эти флаги устанавливаються в 1 если эти события не возникают, а когда возникают эти события флаги устанавливаються в 0? По идее все должно быть наоборот, или я чего не понимаю? |
Автор: | GetChiper [ 27 фев 2012, 23:01 ] |
Заголовок сообщения: | Re: Помогите разобраться с флагами |
Это от большего ума АБ ![]() sshot-1.png [ 1.5 КБ | Просмотров: 7175 ] А если серьезно, AVR не умеет ПРИБАВЛЯТЬ к регистру константу. Умеет только отнимать (команда ассемблера SUBI), поэтому и строится такая конструкция! Если нужно такое действие как на картинке замените r20+1 на r20++ |
Автор: | xfly [ 28 фев 2012, 00:03 ] |
Заголовок сообщения: | Re: Помогите разобраться с флагами |
Спасибо! Прикольно... а что делать то? Как правильно нужно записывать, чтоб эти флаги правильно работали? Вот пока писал, уже ответ пришел. Но R++ не влияет на флаг Н! Вроде понял... надо тогда просто регистры складывать, надеюсь это он умеет делать. Сейчас проверил, вот так флаги действительно правильно устанавливаються ^R20 1 -> R21 R20+R21 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |