Aktywne Wpisy

Aż nie wiem jak to otagować. Linkedin właśnie wszedł na nowy, absurdalny poziom
#linkedin #patologiazmiasta #heheszki #korposwiat
#linkedin #patologiazmiasta #heheszki #korposwiat
źródło: obraz_2025-12-16_114445852
Pobierz
8kiwi +3
Dlaczego kobiety w przedziale wiekowym 20-40 tak bardzo kochają chodzić na śniadania do restauracji typu Aioli, Manekin #gdansk #warszawa #krakow Co jest takiego zajebistego jajecznicy bądź naleśnikach podanych na drewnianej desce? #kobiety #polska #rozowepaski #niebieskiepaski





#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