|
Ушел с форума
16381 / 7693 / 1080
Регистрация: 11.11.2010
Сообщений: 13,779
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15.11.2013, 04:52 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ГЛАВА 13 Если проверяемое условие (или содержимое соответствующих флагов на момент выдачи команды SETcc) истинно, то установить значение операнда в 1, если условие ложно – то в 0.ПЕРЕХОДЫ И ЦИКЛЫ (часть 3/5) Команды установки байтов
Применение: эти команды можно использовать после любой команды, изменяющей флаги при необходимости анализа результата изменений, а использование команд CMP или TEST по каким-то причинам невозможно. В основном используются, чтобы избежать ветвлений. Если проанализировать условия для команд условного перехода, то обнаружится их полное соответствие с условиями, обрабатываемыми командой SETcc, за исключением, конечно, команды JCXZ.
установить переменную Bool=1 если условие ((A<=B) and (D=E)) or (F<>G) истинно
(Условная передача данных = ”Condition MOVE”) CMOV<condition code> <DEST>,<SRC> Возможные варианты команды: cmovcc reg32,reg32 cmovcc reg32,[reg32] cmovcc reg32,mem32 Семантика команды: передача данных из операнда SRC в операнд DEST при выполнении условий, определяемых состоянием соответствующих флагов. Алгоритм работы: команды проверяют истинность условия, заданного в коде операции, то есть, фактически, состояние определенных флагов, и если условие выполняется (производится передача данных из операнда SRC в операнд DEST), то команда заканчивается без пересылки. Псевдокод: temp IF(64-Bit Mode) THEN IF condition TRUE THEN IF (OperandSize =64) THEN DEST ELSE DEST ENDIF ENDIF ELSE IF condition TRUE THEN DEST ENDIF ENDIF Команды условной пересылки данных
Применение: эти команды можно использовать после любой команды, изменяющей флаги, при необходимости анализа результата изменений. Это существенно повышает гибкость программирования на языке ассемблера, одновременно уменьшая объем кода за счет устранения команд сравнения и условного перехода. ;пересылка из регистра EAX в переменную mem32, если флаг ZF=1 cmove eax,mem32 Следующие последовательности эквивалентны:
Предсказание ветвлений Обработка команд в современных процессорах осуществляется поэтапно на основе конвейерного принципа. При обнаружении команды условного ветвления может оказаться что операция, определяющая соответствующее условие, еще не выполнена до конца. В этом случае невозможно определить, какая из ветвей программы будет выполняться дальше. До недавнего времени подобные ситуации приводили к тому, что обработка дальнейших команд приостанавливалась до момента вычисления условного перехода. Ввиду того, что длина конвейера может быть весьма велика, это приводило к значительным потерям производительности. Данная проблема может быть решена путем сбора статистической информации о том, исполнение какой ветви условного перехода более вероятно. Данная информация может быть получена, например, во время предыдущих проходов данного участка или кода из «подсказки», вставленном компилятором в исполнимый код. В этом случае процессор может продолжить обработку команд предсказанной ветви программы. В тот момент, когда становится доступным значение условного выражения, проверяется правильность предсказания. Если оно окажется неверным, результаты обработки ошибочно выбранных команд уничтожаются, и начинается обработка альтернативной ветви программы.Это приводит к простою исполнительных блоков процессора. Таким образом, наихудшим вариантом является условный переход, обе ветви которого равновероятны. Для всех рассматриваемых процессов приближение вероятности условного перехода к 0,5 приводит к двукратному снижению производительности. Это означает, что каждый неверно предсказанный переход приводит к увеличению времени выполнения соответствующих инструкций примерно в 4 раза. В связи с этим целесообразно удалять операции условного перехода из часто выполняемых участков программы. Например, если переход выполняется для четных элементов некоторого массива, целесообразно создать два цикла, отдельно обрабатывающих четные и нечетные элементы.
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|