Difference between JE/JNE and JZ/JNZ

JE and JZ are just different names for exactly the same thing: a conditional jump when ZF (the “zero” flag) is equal to 1. (Similarly, JNE and JNZ are just different names for a conditional jump when ZF is equal to 0.) You could use them interchangeably, but you should use them depending on what … Read more

Why is x86 ugly? Why is it considered inferior when compared to others? [closed]

Couple of possible reasons for it: x86 is a relatively old ISA (its progenitors were 8086s, after all) x86 has evolved significantly several times, but hardware is required to maintain backwards compatibility with old binaries. For example, modern x86 hardware still contains support for running 16 bit code natively. Additionally, several memory-addressing models exist to … Read more

What’s the difference between a word and byte?

Byte: Today, a byte is almost always 8 bit. However, that wasn’t always the case and there’s no “standard” or something that dictates this. Since 8 bits is a convenient number to work with it became the de facto standard. Word: The natural size with which a processor is handling data (the register size). The … Read more

How exactly does the callstack work?

The call stack could also be called a frame stack. The things that are stacked after the LIFO principle are not the local variables but the entire stack frames (“calls”) of the functions being called. The local variables are pushed and popped together with those frames in the so-called function prologue and epilogue, respectively. Inside … Read more

What is the “FS”/”GS” register intended for?

There is what they were intended for, and what they are used for by Windows and Linux. The original intention behind the segment registers was to allow a program to access many different (large) segments of memory that were intended to be independent and part of a persistent virtual store. The idea was taken from … Read more

`testl` eax against eax?

The meaning of test is to AND the arguments together, and check the result for zero. So this code tests if EAX is zero or not. je will jump if zero. BTW, this generates a smaller instruction than cmp eax, 0 which is the reason that compilers will generally do it this way.

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)