Флаг процессора AF - Assembler - Ответ 17158610

Да флаг переноса (Carry) при сложении байт это перенос из бита 7 за пределы байта.

А флаг дополнительного переноса (Auxiliary Carry) при сложении байт это перенос из младшей тетрады в старшую (из бита 3 в бит 4). Используется когда считаешь не в двоичных числах, а в двоично-десятичных. А такие в софте ПК почти не применяются, но вовсю применяются в микроконтроллерах, когда надо обсчитывать числа, которым предстоит выводиться на семисегментных индикаторах. Очень удобно: одна тетрада - одна цифирка, причем сразу готовая цифирка.

Число для такого индикатора удобно хранить в 16-разрядном слове из 4-х тетрад и вытаскивать из слова уже готовую нужную тетраду для динамической индикации. А если хранить в двочином виде, то придется постоянно делить на 10 , 100 и 1000 чтобы из числа нужную цифирку извлекать.

А теперь смотри

111 - это 6F шестнадцатеричное

6F + 6F в байт влезает. За пределы байта ничего не вылетает. Значит перенос СF при таком сложении равен нулю.

А теперь смотрим на младшие тетрады. Там сложение

F + F

Результат в тетраду не влезает. Значит при сложении имеет место перенос из младшей тетрады в старшую. Значит АF равен 1.

Вернуться к обсуждению:

Флаг процессора AF Assembler