Why use LDR over MOV (or vice versa) in ARM assembly?

It is a trick/shortcut. say for example ldr r0,=main what would happen is the assembler would allocate a data word, near the instruction but outside the instruction path ldr r0,main_addr … b somewhere main_addr: .data main Now expand that trick to constants/immediates, esp those that cannot fit into a move immediate instruction: top: add r1,r2,r3 … Read more

What are the sizes of tword, oword and yword operands?

Looking at the nasm source, it looks like: ‘oword”https://stackoverflow.com/”DO’ is 8 times as big as “word” (O for “octoword”), synonymous with dqword (“double-quad”); that would be 128 bits, corresponding to the size of an SSE vector register. ‘tword”https://stackoverflow.com/”DT’ is 80 bits (T for “ten bytes”), the full size of an Intel x87 floating point register. … Read more

Why does the PLT exist in addition to the GOT, instead of just using the GOT?

The problem is that replacing call printf@PLT with call [printf@GOTPLT] requires that the compiler knows that the function printf exists in a shared library and not a static library (or even in just a plain object file). The linker can change call printf into call printf@PLT, jmp printf into jmp printf@PLT or even mov eax, … Read more

What do the E and R prefixes stand for in the names of Intel 32-bit and 64-bit registers?

R just stands for “register”. The AMD64 ISA extension added 8 additional general-purpose registers, named R8 through R15. The 64-bit extended versions of the original 8 registers had an R prefix added to them for symmetry. E stands for “extended” or “enhanced”. (Wikipedia says “extended”.) They are the “extended” versions of the 16-bit registers, in … Read more

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