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



Листинг 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.

Команды АЛУ и присвоение флагов

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

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

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


назад далее