PF флаг

Тема в разделе "WASM.ASSEMBLER", создана пользователем Entropy, 1 фев 2026.

Метки:
  1. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    233
    Мне до сих пор не понятно для каких целей используется Parity Flag,может его возможно использовать в задачах связанных с криптографией,я понимаю что этот флаг устанавливается в том случае когда младший байт операнда содержит чётное количество едениц,я его воспринимаю как что-то бесполезное
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.085
    Используется в последовательных интерфейсах для контроля. Попробуй не найти слово parity в реализации любого такого интерфейса в ядре линукса например.
     
  3. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    233
    f13nd, всмысле я о том как этот флаг можно использовать в своих задачах
     
  4. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    572
    Это атавизм очень древний от 8008.
    Он предназначался для терминалов DataPoint емнип софтово обслуживал линию связи.
    8080 его унаследовал автоматически т.к. такое же применение не исключалось.
    8086 задумывалься совместимым на уровне исходных кодов и тоже унаследовал.
    И вот мы тут.
    На самом деле уже в 8086 серийные порты делались аппаратными контроллерами и участия ЦП в контроле четности не требовалось. Да и сама эта четность уже тоже предревнючесть сильно уступающая концепциям типа crc.
    Более поздние архитектуры такого флага не имеют и живут без проблем.

    Лет 15 назад встречал в инете мнение какого то системщика что мол в его коллекции из гигабайт ассемблерных исходников он встретил использование этого флага ровно три раза и эти все разы какая то не стоящая упоминания экзотика.
     
    Последнее редактирование: 2 фев 2026
  5. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    437
    ISA, флаг введен в jCC, setCC

    see ia sdm.
     
  6. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    233
    архитектура ARM ?
     
  7. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.085
    Экзотика типа того же DOS86.
    --- Сообщение объединено, 10 фев 2026 в 04:11 ---
    Исходники fasm'а тоже например редкая экзотика.
    Код (Text):
    1.     mov    [ebx+12],ah
    2.     mov    eax,[edi]
    3.     add    [ebx],eax
    4.     mov    eax,[edi+4]
    5.     adc    [ebx+4],eax
    6.     mov    al,[edi+13]
    7.     adc    [ebx+13],al
    8.     jp    add_sign_ok
    9.     call    recoverable_overflow
    10.       add_sign_ok:
     
    Application нравится это.
  8. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    572
    Почти любая архитектура. i86 это белая ворона среди остальных архитектур в этом смысле.
    ARM, m68k, SPARC, MIPS - и бла бла бла - всё без этого флага преспокойно живёт и здравствует.
    Сама концепция что процессору нужна инструкция контролировать флаг чётности передачи по COM-порту - это было нужно в микроконтроллерах и попало в i86 из-за жёстких идей обратной совместимости.
    Когда таких идей не было - а это почти всегда - то и не было такого флага.

    Тут да - это архаичный ассемблер, если присмотреться, то JP это не jump parity, а просто безусловный переход из i8080. При том, что JMP тоже встречается - какой то переходный период древности.
    Поэтому ответ в том, что "SCP's 8086 Cross Assembler (AMS86)", а не parity flag.

    А вот пример из FASM уже любопытен - EXPRCALC.INC - https://github.com/tgrysztar/fasm/blob/2ec3518f28046b2544b97583044fc9b791210e0d/SOURCE/EXPRCALC.INC
    Хм, везде JP предшествует call recoverable_overflow и как будто используется для проверки правильности знака в арифметических операциях (add_sign_ok, sub_sign_ok, neg_sign_ok и т.п.).
    Не доходит до меня с нахрапа глубинный смысл тут такой операции, но вероятно да, один из трёх экзотических случаев когда можно было обойтись просто другой проверкой условий по ксору знаки накладывая или типа того, но программист решил выебнуться на ровном месте без необходимости реальной таковой.
    Впрочем - его право, ибо PF из i86 уже не выкорчуешь - даже в x86-64 на это не решились, хотя ни о какой проверке на чётность бит в словах, двойных словах и уж тем более квадах речи не идёт - благо на флаг уже навесили другие функции типа проверки на NAN в FPU, так что смысл реальный всё-же бывает, просто уже за рамками изначальных намерений.
     
    Последнее редактирование: 12 фев 2026 в 02:56
    Mikl___ нравится это.