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



Read ,16d . PackBuff поймет, что первого параметра нет, и потому не станет посылать его в регистр Ьх.

Как видите, макросы очень похожи на процедуры. У них, как и у процедур, есть параметры, а вызов макроса напоминает запуск процедур директивой Invoke. Но это сходство обманчиво. Ведь процедуры по-настоящему отделены от основной программы, они хранят параметры и свои локальные переменные в стеке. Мак­росы же только прикидываются процедурами, а на самом деле они принадлежат основной программе и могут быть источником ошибок. Кроме того, макросы вставляются в программу при каждом вызове, а потому занимают больше памя­ти. Но у макросов есть и преимущества: ими легче манипулировать, материал, из которого сделан макрос, более податлив. Кроме того, вызов процедуры требу­ет процессорного времени, чтобы сохранить в стеке передаваемые параметры. Макрос получает свои параметры сразу. Поэтому там, где требуется высокая скорость вычислений, лучше использовать макрос.

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

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

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

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


назад далее