++++++++++++++++++ Assembly Intel x86 ++++++++++++++++++ Instructions ============ * CDQE: RAX ← sign-extend of EAX. * MOVSXD rcx,ecx: Move doubleword to quadword with sign-extension. * MOVABS rcx, : to load arbitrary 64-bit constant into register and to load/store integer register from/to arbitrary constant 64-bit address is available. * ENDBR64: "End Branch 64 bit", Terminate Indirect Branch in 64 bit. Related to Control flow Enforcement Technology (CET) hardening (-fcf-protection=branch option of GCC). Executed as NOP if the CPU doesn't support CET. Registers ========= ============ ========== ========= ======== 64b register Lower 32b Lower 16b Lower 8b ============ ========== ========= ======== rax eax ax al r9 r9d r9w r9b ============ ========== ========= ======== x86-64 ABI ========== `System V AMD64 ABI `_ (Linux): * First 6 arguments placed onto registers: RDI, RSI, RDX, RCX, R8, R9. `Microsoft x64 calling convention `_: * First 4 arguments placed onto registers: RCX, RDX, R8, R9.