Chcialbym sie dowiedziec kiedy wystepuje przeniesienie zmianna carryFlag ? Wiem tylko tyle, ze podczas operacji arytmetycznych. Czyli coś takiego:
Założmy :
eax = 10; b = 20;
Czyli jak mam cmp eax,b to wtedy wystepuje przeniesienie ?
eax = 20; b= 10;
a jezeli bylo by** cmp eax, b **to wtedy nie ma przeniesienia ?
Przykladowy kod ktory mial wyznaczac liczbe max
Dla : a= 10; b= 20; przy takich zmiennych wyznaczy mi ze max wynosi 20;
Natomiast dla : a= 20; b = 10 ; wyznaczy mi ze maksymalna wynosi 10. Dlaczego ?
Dlaczego musze wrzucic rejestr na stos ?
int Max(int a,int b)
{
int wynik;
__asm{
push eax;
mov eax,a;
cmp eax,b;
jc Skok; // skok jesli przeniesienie
mov wynik,eax;
Skok:
mov eax,b;
mov wynik,eax;
pop eax;
}
return wynik;
}