Aktywne Wpisy

Voltee +722
Allegro kryje oszustów?
Czołem, Mireczki i Mirabelki! Zaszła taka sytuacja, że kupując dyski na #allegro trafiłem na sprzedającego, który, mówiąc wprost, sprzedaje STARE dyski twarde jako NOWE.
Z opinii, które udało mi się znaleźć wychodzi na to, że ten proceder trwa już od dłuższego czasu!
Ponieważ typ czuje się nietykalny, a Allegro mało się tym przejmuje, to stwierdziłem, że może #wykopefekt zrobi swoje.
Czołem, Mireczki i Mirabelki! Zaszła taka sytuacja, że kupując dyski na #allegro trafiłem na sprzedającego, który, mówiąc wprost, sprzedaje STARE dyski twarde jako NOWE.
Z opinii, które udało mi się znaleźć wychodzi na to, że ten proceder trwa już od dłuższego czasu!
Ponieważ typ czuje się nietykalny, a Allegro mało się tym przejmuje, to stwierdziłem, że może #wykopefekt zrobi swoje.
źródło: 10-hgst-slady-po-srubach-joined
Pobierz
Chicane 0





#include
int main()
{
int a = 3;
int b = 5;
if (a == b)
{
printf("Terefere\n");
}
return 0;
}
Assembly z tego kodu w okolicach w/w ifa wygląda mniej więcej tak(IDA FREEWARE, kod uproszczony przeze mnie, nie zadziała po wklejeniu):
//.....
mov eax, 3
cmp eax, 5
jnz locaddress123
call printf //wyświetlenie napisu
locaddress123: //zakończenie pracy programu
retq
//....
Jeżeli dobrze rozumiem to w przypadku kiedy porównanie zwróciłoby TRUE, to flaga ZF ustawiona zostałaby na 1.
W tym przypadku flaga ZF będzie miała wartość 0.
Jak to się ma do instrukcji JNZ?
Skoro definicja mówi: "jump, if not zero" to skok nastąpi w momencie kiedy porównanie będzie prawidłowe? Czyli kiedy dwie liczby będą równe. A skoro nastąpi skok to nie wykona się instrukcja "printf". Trochę to dziwne :/
Zwłaszcza, że kłóci się to z tożsamą instrukcją JNE "jump, if not equal", która w swojej treści jest jasna.
#programowanie #assembler
Jest OK.
Kompilator odwrócił sobie ifa, bo tak jest optymalniej (spróbuj napisać assemblera bez odwracania ifa, to zobaczysz czemu - będziesz potrzebował 2 skoków :) ).
Dzieki