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



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

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

АЛУ и указатели

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

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

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


назад далее