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



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

АЛУ и флаги

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

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

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


назад далее