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



Листинг 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 флагов. Громадная область данных джокеров будет проанализирована после исполнения циферных операций с поддержкой функций сравнительного перевода, и вдобавок с помощью процедуры CIN (прерывание по заполнению). Действие арифметических процедур на знаки обрисовано ниже.

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

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


назад далее