Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
Угу. Только мне от этой двоичной арифметики что-то нехорошо становится. Можно это как-то проще интерпретировать? Я так понимаю: если в результате операции произошло изменение (то что стало минус то что было), превышающее значение 0f, значит флаг V возводится?
PF для битовых операций (включая OR) считается не так, как для арифметических, не по переменам знаков.

Интерпретировать эту арифметику очень просто: 0x9669 это просто битовый массив размером 16, т.е. числам 0...15 поставлено в соответствие значение 0 или 1. Макрос PF_LOG4(n) реализует это соответствие: для числа (n) в диапазоне 0..15 он возвращает поставленное ему в соответствие значение -- 0 или 1. Макрос PF_LOG(n) сравнивает значения, которые дает PF_LOG4() для четырех старших и четырех младших разрядов своего аргумента (n). Если эти значения совпадают, значит PF должен быть взведен, иначе PF должен быть сброшен.