LINUX.ORG.RU

История изменений

Исправление AlexCones, (текущая версия) :

Там тоже нужны переносы при реализации не на железе, а программно.

Вот схема последовательного, которая у меня намечается.

# A + B

Over = 0;
TempRes = 0;

T1 = A;
T2 = B;
T1 &= 0x00000001;
T2 &= 0x00000001;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

T1 = A;
T2 = B;
T1 &= 0x00000002;
T2 &= 0x00000002;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

T1 = A;
T2 = B;
T1 &= 0x00000004;
T2 &= 0x00000004;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

// ...

T1 = A;
T2 = B;
T1 &= 0x80000000;
T2 &= 0x80000000;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

return TempRes;
Вот в таком виде надо, чтобы SUM1bit возвращал Over на один разряд левее.

Исправление AlexCones, :

Там тоже нужны переносы при реализации не на железе, а программно.

Вот схема последовательного, которая у меня намечается.

# A + B

Over = 0;
TempRes = 0;

T1 = A;
T2 = B;
T1 &= 0x00000001;
T2 &= 0x00000001;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

T1 = A;
T2 = B;
T1 &= 0x00000002;
T2 &= 0x00000002;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

T1 = A;
T2 = B;
T1 &= 0x00000004;
T2 &= 0x00000004;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

// ...

T1 = A;
T2 = B;
T1 &= 0x80000000;
T2 &= 0x80000000;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

return TempRes;
Вот в таком виде надо, чтобы SUM1bit возвращал Over на один разряд левее.

Исходная версия AlexCones, :

Там тоже нужны переносы при реализации не на железе, а программно:

# A + B

Over = 0;
TempRes = 0;

T1 = A;
T2 = B;
T1 &= 0x00000001;
T2 &= 0x00000001;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

T1 = A;
T2 = B;
T1 &= 0x00000002;
T2 &= 0x00000002;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

T1 = A;
T2 = B;
T1 &= 0x00000004;
T2 &= 0x00000004;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

// ...

T1 = A;
T2 = B;
T1 &= 0x80000000;
T2 &= 0x80000000;
TempRes |= SUM1Bit(T1, T2 /* in */, Over /* out */);

return TempRes;
Вот в таком виде надо, чтобы SUM1bit возвращал Over на один разряд левее.