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



не равно > больше >я больше или равно < меньше <я меньше или равно

Глядя на эти условия, стоит вспомнить, что в ассемблере есть два типа сравне­ний — для чисел со знаком и без. Так вот, директивы .IF .ELSE .ENDIF по умолча­нию считают числа беззнаковыми, то есть ассемблер поставит вместо .IF еах < О инструкцию jb, а для условия .IF еах > 0 поставит инструкцию ja. Чтобы заста­вить ассемблер использовать инструкции сравнения чисел со знаком jg и jV, нужно пометить одно из сравниваемых чисел оператором SDWORD PTR (для двой­ного слова), SWORD PTR (для слова) или же SBYTE PTR (для байта). Так, например, директива .IF SDWORD PTR digit > 0 превратится в инструкцию jle (если меньше или равно, перейти), а директива .IF digit > 0 станет инструкцией jbe, которая работает с числами без знака.

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

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

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

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


назад далее