29.02.2020, 00:10 [+3 UTC]
в нашей команде: 4 243 чел. | участники онлайн: 6 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.82 (22.02.2020)
JS-v.1.35 | CSS-v.3.37

Общие новости:
06.01.2020, 22:45

Форум:
28.02.2020, 17:24

Последний вопрос:
28.02.2020, 19:12
Всего: 151690

Последний ответ:
27.02.2020, 18:42
Всего: 259815

Последняя рассылка:
28.02.2020, 23:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
01.02.2011, 21:19 »
Екатерина
Большое спасибо, за подробное разъяснение!!! [вопрос № 182067, ответ № 265675]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 705
solowey
Статус: Специалист
Рейтинг: 266
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 105

Перейти к консультации №:
 

Консультация онлайн # 72599
Раздел: • Assembler
Автор вопроса: Oxaid
Отправлена: 25.01.2007, 15:33
Поступило ответов: 2

Привет! На основание чего устанавливается флаг of? Я не имею в виду, что он обозначает, а именно как он устанавливается, исходя из чего процессор определяет, что нужно его установить? Как он это рассчитывает, на основаниие каких разрядов или может др. флагов? Как он определяет, что произошла потеря значашего бита? Я , например, знаю, что если сложить -70 и -70, то произойдет установка этого флага из-за того, что -140 не вместится в 1 байт в доп. коде (если рассматривать байтовую операцию). Вопрос, как процессор это понял?

Состояние: Консультация закрыта

Ответ # 139100 от Олег Владимирович

Здравствуйте, Oxaid!
По-моему, его поведение можно описать так:
0, если старший бит результата равен одному из старших битов операндов сложения/вычитания;
1 в противном случае.
Логически:
(ст.бит результата XOR ст.бит первого операнда) AND (ст.бит результат XOR ст.бит второго операнда) = OF
Та самая логическая схема, которую наверняка имел в виду Лысков Игорь Витальевич.

В сдвиговых операциях OF устанавливается в том и только в том случае, если старший бит приёмника изменился. OF = ст.бит до сдвига XOR ст.бит после сдвига.

Вывод: каждая команда по-своему меняет флаги, схема не всюду одинакова.

При умножении, например, просто OF = CF = (старшая половина результата не ноль, что можно представить как (бит0 AND бит1 AND ... AND ст.бит)).

Так что тут изучать и изучать. Удачи!


Консультировал: Олег Владимирович
Дата отправки: 25.01.2007, 16:35

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, Oxaid!
Процессор не знает, что есть числа со знаком и без знака.
Он все считает в двоичной арифметике и уже на программиста ложится задача контроля правильности вычисленных результатов:
флаг cf устанавливается когда есть перенос со старшего бита (7,15,31 и т.д.)
флаг of устанавливается когда есть пернос с бита 6 в 7 или с 14 в 15 или с 30 в 31, так как для для знаковых чисел испульзуется <знак>+<7,15,31 бит числа>,
вот для защиты бита знака существует флаг of
анализируя флаги of и cf можно принимать решение о достоверности результата.
Надеюсь обьяснил.Удачи!


Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 25.01.2007, 17:50

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.22096 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.82 от 22.02.2020
Версия JS: 1.35 | Версия CSS: 3.37