Главная » Просмотр файлов » Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)

Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 14

Файл №1264222 Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)) 14 страницаХартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222) страница 142021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 14)

При равенстве порядков, когда их разность Лр = О, выполняется переход к сложению мантисс. В противном случае предварительно разность Лр сравнивается с длиной мантиссы. Если разность превысит 24, то при выравнивании порядков со сдвигом вправо мантиссы меньшего числа она покинет разрядную сетку, происходит потеря значимости. В качестве результата принимается операнд, который в этот момент находится в регистрах первого операнда (рА, шА).

Если разность меньше 24, переходим к сдвигу мантиссы меньшего числа„поместив ее в регистры (1пАН, шАМ, шАЕ), разность порядков — в регистре рВ, меньший порядок — в регистре рА. Сдвиг мантиссы вправо сопровождается увеличением порядка в регистре рА, уменьшением в регистре рВ и продолжается до тех пор, пока в регистре рВ не получим О. Сложив побайтно мантиссы, проверяем признак переноса, который свидетельствует о нарушении нормализации. При отсутствии его (С = О) выполняется переход к преобразованию числа в базовый формат. При С = 1 мантиссу суммы сдвигаем вправо и порядок увеличиваем на 1, Выполняем проверку переполнения.

Если образовался порядок, равный О, это означает превышение максимального порядка 255. Программа завершается с установленным флагом переполнения С. Полученный в регистрах рА, шА результат считается неопределенным и не форматируется. При от- 87 86 ;расположены в файлах Г1я ;5111Ь.аящ (библиотечные ** * * .хпс1цбе 8515бег.хпс ;.Ьпс1цбе "щ8515бет.1пс .бег Сещр = г16 .бег асс = г17 .бег сор = г18 рА = г20 щАН = г21 пАМ = г22 щА(. = г23 рВ = г24 п1ВН = г25 п|ВМ = г2б щВЬ = т27 . бег .бех .бех .бет .бес .бег .беХ .бег .огЧ $000 инициализация указателя стека 1с)1 Сещр, 1он (НАМЕНП) оцт яр1, Секр 1бт Секр, ЬТОЬ(НАМЕНП) оцт ярЬ, Сещр срт сор,Ох01 Ьгеп Аббг гзщр БцЬГ проверка кода операции плавающей точкой ;модуль сложения чисел с с одинаковым знаком Аббг: щоч асс,рА еот асс,рв Ьгрт Аббрт 1с)1 Сещр,Ох80 абб рВ, сещр гзщр БцЬГ ;изменение знака сравнение В с 0 ;сравнение А с 0 ;обмен А и В АббГ1: сса11 ср В 0 Ьгеп оцйт гса11 ср А 0 Ьгпе Аббг2 гса11 янарАВ г31пР фц1С Программа З.З ,сохранение знака Т рВ 7 ;восстановление чисел через регистры А АббГ2: Ьят рВ,7 гса11 тес сса11 янарАВ гса11 тес ,вычитание порядков щоч асс,рА 3.

Арис/ьнетическая обработка данных сутствии переполнения флаг С сбрасывается и выполняется преобразование в базовый формат. Алгоритм сложения чисел с одинаковым знаком представлен листингом программы 3.3. Программа позволяет выполнить алгебраическое сложение чисел с учетом знаков слагаемых. В том случае, когда слагаемые имеют разные знаки, происходит обращение к модулю вычитания. С помощью директивы йпс!Вбе "ВзцЪ.аящ" подключают программный модуль вычитания чисел с плавающей точкой одинаковых знаков. Это позволяет в дальнейшем выполнить посредством одной и той же программы не только сложение, но и вычитание чисел. В начале общей программы сложения/вычитания выполняют проверку кода выполняемой операции: 1 — для сложения (ь), 2— для вычитания ( — ).

В зависимости от заданной операции и знаков операндов запускают процедуру сложения или вычитания беззнаковых чисел (табл. 3.4). При необходимости производится перемена мест операндов. В итоге можно применить одну из двух процедур: сложение или вычитание модулей чисел. Таблица 3.4. Выполняемые операции ;Программа 3.3 сложения/вычитания чисел с плавающей точ- ;кой. ;Первый операнд находится в регистрах рА, п1АН, щАМ, щАЬ, ;второй — в регистрах рВ,щВН, щВМ, щВЬ. Результат ;возвращается в регистры первого операнда. При переполне- ;нии флаг С устанавливается в 1.

Вызываемые процедуры 3.7. Операции над числами с нлапаюи(ей тачкой цЬ аящ (модуль вычитания) и модули) ** * ** * ** * * ******** ;файл определений для АТ9088515 ;файл определений для Атщеча8515 ;временный регистр ;регистр аккумулятор ;код операции: 1 — сложение, 2 — вычитание ;операнд А (рА — байт порядка), с(п1АН, щАМ, и АЬ вЂ” байты мантиссы) ;операнд В (р — байт порядка), с(щвн, щВМ, щВЬ вЂ” байты мантиссы) 88 3.

Арифметическая обработка данных зчЬ асс,рВ Ьгр1 Аббгз гса11 знарАВ воч асс,рА зцЬ асс,рВ Абдхз: Ьгеп Аабгб ср1 асс,24 Ьхш1 Аабг4 г)вр Аббг7 О4 ;переход, если больше О, иначе обмен и снова вычитание ;переход, если порядки равны ;сравниваем Адбг4: воч рА,асс гса11 зиарАВ ;разность порядков з рА ;разность теперь з рВ Аддг5: гса11 зпгхе хпс рА бзс рВ Ьхпе АббГ5 ;сложение мантисс ;подключение модуля вычитания и библиотечных процедур Типовые процедуры, используемые алгоритмами сложения!вычитания, помещены в библиотеку, подключаемук> директивой Зпс1щ1е "й11Ь.азш".

Библиотека 7)Ио содержит процедуры восстановления операнда из базового формата гес, упаковки в базовый формат расК, обмен операндов зкуарАВ, сдвига мантиссы вправо иа один разряд з)7ф, логического сложения 24-разрялиой мантиссы для сравнения с нулем. В осстаиовлеиие числа из базового формата производится с помощью четырех операций, как показано иа рис. 3.10, а. Вначале при помощи логического сдвига влево ® младший бит порядка из регистра старшего байта мантиссы шАН выталкивается иа флаг переноса С. Затем выполняется циклический сдвиг влево содержимого регистра порядка рА О2.

Благодаря этому 8-разрядный порядок полностью оказывается в регистре рА. Далее мантисса шАН сдвигается вправо Оз и в разряд 7 регистра гпАН восстанавливается скрытая 1 О4. Программа 3.4 Асах б: асс вАЬ,ввь або вАМ,вВМ аде влп,ввп Ьхсс Адбк7 1пс рв Ьхеп Оц1Х хса11 зп1хх Аббг7: гса11 расв Яотх: х)вр Оотг .1пс1цае 5В1зцЬ.азв" .хпс1цбе "ГЩ1Ь.азв" ;переход при потере значимости ;сдвиг з регистрах вА ;увеличиваем порядок меньшего числа ;уменьшаем разность порядков ;проверка нарушения нормализации ;корректируем порядок ;выход с Флагом переполнения ;сдвиг мантиссы вправо ;форматирование результата 3. 7.

Операции пад числами с агаеающей точкой 7 О а б Рис. 3.10. Схема восстановления числа нз базового формата (а) н преоб- разования в базовый формат (б) Преобразование результата операции, помещаемого после обработки в регистры А, в базовый формат выполняется по схеме иа рис. 3.10, б.

Вначале сохраняем порядок рА в одном из регистров, например рВ О1, Затем знак результата, сохраняемый иа флаге Т, переносим иа флаг С О2. Выполняя сдвиг вправо регистра порядка рА, вводим знак числа в разряд 7 регистра рА Оз. Передачу младшего бита порядка в старший разряд мантиссы шАН выполняем за два шага: сначала из разряда 0 регистра рВ в Т О4, затем из Т в разряд 7 регистра шАН О5 иа место старшего разряда мантиссы.

Обмен 32-разрядных операндов в регистрах А и В осуществляется с использованием логической функции Исключающее ИЛИ. Действительно, получив сначала А +- А хп В, выполняем далее В 4 — В хп А и А +- А Ю В. Эти операции повторяют отдельно для каждого байта порядка и мантиссы (всего 12 операций). Используемые библиотечные процедуры с комментариями представлены в листинге программы 3.4. ************я *****************я****************я********* ;модуль 3. 4 библиотечных процедур 118Ь.аяп 7Восстанозлзние операнда из базового формата гас: 1з1 кьдп ;младший разряд порядка в С го1 рА ;восстановление порядка 1зг вАН ;сдвиг вправо мантиссы огг вАИ, Охво ;восстановление скрытой 1 90 вводим знак в рА.7 младвий разряд порядка переносим в АН.7 3. Арифметическая обработка данных хек ;Упаковка в базовый Формат раса: воя рЬ,ра ;сохраняем рА с1с Ьхпс в2 ;проверяем знак зес в2: хох рА Ьзе рЬ,О Ь1с) пАН,7 хек ;Обмен операндов знарАВ: еох рА,рВ ;обмен регистров еох рВ,рА ; рА и рВ еох рА,рВ за три операции еох пАЬ,вВЬ еох вВ1.,вА1.

еох пА1,,вВЬ еох вАМ,вВМ еох вВМ,пАМ еох пАМ,вВМ еох вАН,вВН еох вВН,вАН еох вАН,вВН хес ;Сложение для сравнения А(В) с О ср А О: воя асс,рА ох асс,вАН ох асс,пАИ ох асс,пАЬ ;при А=О возвращает флаг хех спрн АХΠ— В=О ср В О: воя асс,рВ ох асс,вВН ох асс,вВМ ох асс,вВЬ )при В=О возвращает флаг хеХ )при ВНΠ— В=О ;Сдвиг вправо 24-разрядной мантиссы вА зпьйп: 1зх вАН хох пАИ хох вА1. с1с хек Вычитание Операция начинается с проверки знаков слагаемых (рис. 3.11). Если знаки операндов ие совпадают, знак вычитаемого изменяется иа противоположный и выполняется переход к процедуре сложения чисел АсЫг'.

Если исходные операнды с одним знаком, ка)КЛый 3. 1. Операции над числами с плаеаюи)ей точкой Рис. 3.11. Схема алгоритма вычитания с плавающей точкой **********ь************* БцЬЕ: поч асс,рА еог асс,рВ Ьгрт яцЬЕ1 1бг Гепр,Ох80 абб ря,гепр гзпр Аббг яцЬЕ1: гса11 ср В 0 Ьгес( Оцгс гса11 ср А 0 Ьгпе БцЬЕ2 гса11 энарАВ тбв Сепр,Ох80 абб рА,Гешр Оцгпя: гзпр Оц1Г сравнение знаков чисел при неравных знаках смена знака 2-го числа проверка в на 0 проверка А на 0 обмен операндов со сменой знака результата БцЬЕ2: Ьаг. рА,7 гса11 тес гса11 энарАВ гса11 тес ;из порядка 1-го вычитаем порядок 2-го поч асс, рв вцЬ асс,рА Ьгпе БцЬЕЗ ср пВН,пАН Ьгпе ЯцЬЕЗ ср пВМ,пАМ Ьгпе ЯцЬЕЗ ср пВ).,пА1, Ьгпе ЯцЬЕЗ с1г рп с1г пАН с1г пам с1г пА1, г'Зщр оц .г ;при равенстве порядков ! сравниваем мантиссы ;если числа равны, результат равен 0 ;переход, если 1-е число (оно в рВ,пВ) больше, иначе обмен числами и изменение знака в Т ЯцЬЕЗ: Ьгсс ЯцьЕ4 Программа З.э гса11 энарАВ ЬгЬс б,а2 3, Арифметическая обработка данных проходит проверку на равенство О.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее