Руководство по ассемблеру



книге мы почти не интересовались временем выполнения инструкций процессора и не пытались писать быстро работающие программы, потому что тема слишком сложна для начинающих программистов. Но понять, как вообще сочетаются ассемблер и языки высокого уровня, мы сможем.

Представим себе, что написана программа на языке Си, в которой функция xchg меняет местами две целочисленных переменных а и b (см. листинг 14.1).

Арифметико логические операции с присвоением флага

Итоги арифметических процедур возбуждают на состояние 7 знаков. Громадная область этих джокеров может быть рассмотрена после произведения действительных процедур с поддержкой процедур условного перевода, и вдобавок с поддержкой команды CIN (прерывание по переполнению). Влияние циферных функций на флаги описано ниже.

CF (знак переноса): В случае если в достигнутом результате сочинения совершается сдвиг из главного байта, знак свитча взводится; в другом случае знак свитча сбрасывается. При вычете флаг трансдукции воздевается, в случае если осуществляется заимствование в главный бит достигнутого результата; при нехватке заимствования символ обнуляется. Необходимо учитывать, что при появлении меточного свитча ВА != OF (символ переполнения). Знак свитча CF может употребляться для индикации беззнакового восполнения.

АО (знак добавочного свитча): В случае если в достигнутом результате сочинения свершается сдвиг из меньшого полубайта в верхний, символ дополнительного переноса взводится; в другом случае символ обнуляется. При вычете флаг прибавочного сдвига возводится, в случае если воплощается взятие из главного полуразряда в нижний; при отсутствии заимствования символ сбрасывается.


назад далее