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



По сравнению с циклом, организован­ном директивой .WHILE, здесь все наоборот: цикл прекращается, когда условие в директиве .UNTIL истинно (в нашем примере — когда есх обратится в ноль).

Задача 12.1. Посмотрите с помощью отладчика OllyDbg, как ассемблер реали­зует циклы .WHILE .ENDW и .REPEAT .UNTIL.

Адресация разрядов

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

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

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


назад далее