Вспомогательный флаг устанавливается, когда младший полубайт производит перенос в полубайт более высокого порядка. Например:
1001 9
1001 9
---- ----
1 0010 18
В этом случае устанавливается подмышечный перенос.
Я также слышал, что этот перенос используется для добавления 0110 к полубайту младшего порядка во время добавления BCD, чтобы получить правильный ответ BCD.
Но рассмотрим этот случай
1001 9
0011 3
---- ---
1100 12
В этом случае перенос из этого полубайта не генерируется, вспомогательный перенос не устанавливается, но ответом является неправильное сложение BCD. Что тогда побуждает процессор исправить ответ и получить правильный ответ BCD?