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



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

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

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

Окончания действительных команд возбуждают на расположение 8 флагов. Солидная частица сих джокеров может быть рассчитана после выполнения циферных команд с поддержкой функций условного скачка, и вдобавок с помощью функции INTO (перебой по восполнению). Воздействие циферных функций на флаги изображено внизу.

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

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


назад далее