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



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

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

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

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

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

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


назад далее