Мне до сих пор не понятно для каких целей используется Parity Flag,может его возможно использовать в задачах связанных с криптографией,я понимаю что этот флаг устанавливается в том случае когда младший байт операнда содержит чётное количество едениц,я его воспринимаю как что-то бесполезное
Используется в последовательных интерфейсах для контроля. Попробуй не найти слово parity в реализации любого такого интерфейса в ядре линукса например.
Это атавизм очень древний от 8008. Он предназначался для терминалов DataPoint емнип софтово обслуживал линию связи. 8080 его унаследовал автоматически т.к. такое же применение не исключалось. 8086 задумывалься совместимым на уровне исходных кодов и тоже унаследовал. И вот мы тут. На самом деле уже в 8086 серийные порты делались аппаратными контроллерами и участия ЦП в контроле четности не требовалось. Да и сама эта четность уже тоже предревнючесть сильно уступающая концепциям типа crc. Более поздние архитектуры такого флага не имеют и живут без проблем. Лет 15 назад встречал в инете мнение какого то системщика что мол в его коллекции из гигабайт ассемблерных исходников он встретил использование этого флага ровно три раза и эти все разы какая то не стоящая упоминания экзотика.
Экзотика типа того же DOS86. --- Сообщение объединено, 10 фев 2026 в 04:11 --- Исходники fasm'а тоже например редкая экзотика. Код (Text): mov [ebx+12],ah mov eax,[edi] add [ebx],eax mov eax,[edi+4] adc [ebx+4],eax mov al,[edi+13] adc [ebx+13],al jp add_sign_ok call recoverable_overflow add_sign_ok:
Почти любая архитектура. 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, так что смысл реальный всё-же бывает, просто уже за рамками изначальных намерений.