Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Объясните назначение флага переноса (С). Можно ли использовать этот флаг при работе с числами со знаком. Если да, то как.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Ответ: Разряд 0 - С (флаг переноса). Этот флаг указывает на переполнение в результате выполнения какой-либо арифметической или логической операции. Флаг переноса устанавливается различными командами и может опрашиваться напрямую. К операциям, изменяющим этот флаг, относятся сложение, вычитание, циклические сдвиги и некоторые логические операции. Дополнительно: Этот принцип важен для арифметических операций, которые выполняются над данными, состоящими из нескольких байтов. Рассмотрим еще один пример. Результат -3 можно получить или с помощью сложения (команда add) чисел +12 и -15, или же с помощью вычитания (команда sub) числа +15 из числа +12. Для этих операций отрицательный результат определяют по флагам S и N. Возможность получить одинаковые результаты как в случае прибавления отрицательного, так и в случае вычитания положительного числа, возмещает отсутствие в наборе команд семейства AVR команды addi (сложение восьмиразрядных констант). Вычитание отрицательных значений дает такой же результат, что и при сложении положительных. Существует еще один вариант: константа вначале загружается в какой-либо регистр, а затем содержимое обоих регистров складывается с помощью команды add. Если речь идет о такой константе как 1, то лучше просто воспользоваться командой inc. Этот разряд условий всегда устанавливается, если результат какой-либо арифметической или логической операции равен нулю. В противном случае, флаг Z сбрасывается.
Флаг переноса CF (англ. Carry flag) — флаг регистра признаков 8086-совместимых процессоров, который устанавливается (1), если в результате операции из старшего бита происходит перенос при сложении или заемe при вычитании, иначе CF сбрасывается. Кроме того, CF используется в логических и унарных операциях. Такая архитектура означает, что, например, при 32-битном машинном слове результат сложения фактически получается 33-битный — 32 бита в регистре и ещё один бит в cf. Микроконтроллер TMS320x24x может производить арифметические операции различными способами, в зависимости от того, какие исходные данные используются, и в каком формате необходимо получить конечный результат. Числа могут быть как знаковые, так и беззнаковые. Знаковые числа всегда представляются в дополнительном коде. Это значит, что если сложить число со своим двоичным дополнением, то в результате получится ноль. Так же следует иметь в виду, что только программист знает, между какими двоичными разрядами его числа стоит точка, так как TMS320x24x ни коим образом этого не отслеживает. При выполнении арифметических операций (сложение и вычитание) в микроконтроллере TMS320x24x следует учитывать особенности архитектуры центрального процессора, состоящие в следующем: ü реально все операции в АЛУ выполняются над 32-разрядными операндами. Двоичный результат в пределах 32-разрядной сетки оказывается правильным независимо от того, рассматриваются ли эти числа программистом как числа без знака или как числа со знаком в дополнительном коде. Отличия проявляются только в формировании признаков результата операции: флаг переноса С формируется как признак переполнения при выполнении арифметических операций над 32-разрядными числами без знака, а флаг переполнения OV – как признак переполнения при выполнении операций над 32-разрядными числами со знаком в дополнительном коде (ниже см. более подробно);
Флаг переноса CF (Carry Flag) индицирует перенос или заем при выполнении арифметических операций. Переносом называется ситуация, когда в результате выполнения правильной, в общем, команды образуется число, содержащее более 16 двоичных разрядов и, следовательно, не помещающееся в регистр или ячейку памяти. Пусть, например, в регистре АХ содержится число 60000, а в регистре ВХ - 40000. При выполнении команды сложения add AX,BX в регистре-приемнике результата, которым в данном случае будет служить регистр АХ, должно быть записано число 100000, которое, разумеется, там поместиться не может. В этом случае и устанавливается флаг CF, по состоянию которого можно установить, что произошел перенос и, следовательно, содержимое АХ (которое в данном случае будет равно 100000 - 65536 = 34464) не является правильным результатом. Необходимо подчеркнуть, что ситуация переноса, как и вообще любая ошибка, возникшая по ходу выполнения программы, не приводит ни к каким последствиям, кроме установки соответствующего флага. Процессор, установив флаг, считает свою миссию выполненной и переходит к выполнению следующей команды. Если перенос в данном случае действительно является индикатором ошибки, программа должна после выполнения команды сложения проанализировать состояние флага CF, и при установленном флаге перейти на фрагмент обработки этой ошибки. Сказанное справедливо по отношению ко всем ошибочным ситуациям, возникающим в программе, - программа сама обязана отлавливать все ошибки и выполнять предусмотренные для таких случаев действия. Единственное, что может сделать процессор - это сообщить программе о подозрительном результате установкой того или иного флага.
|
||
|
Последнее изменение этой страницы: 2016-04-07; просмотров: 1434; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.009 с.) |