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



Листинг 14.1. Простая программа на языке Си

#include <stdio.h>

void xchg(int a.int b);

int main(){

int a-2. b-3;

xchg(&a.&b);

printf("a- d b- d\n",a.b); return 0:

void xchg(int a.int b){ int tmp; tmp«a; a»b: b«tmp;

}

Как и положено в языке Си, функция xchg получает два указателя на int.

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

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

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

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


назад далее