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



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

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

Арифметические команды и флаги

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

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

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


назад далее