Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

1.0 - Assembly and low level ?

Assembly language is a low-level machine specific langage, each instruction set processor used it’s assembly in our case x86-64 not run on different processor. A High-level language are translated into assembly who is used by processor to execute a program.
The assembly language help you to see how system ressources like memory, registers work .

It help to improve algorithm development skills, debugging by practicing because it requires more thought, more attention and nuanced approch . The function / procedure call, Input/Output instructions including the content and structure of function, a important significant implementations are best understood when working at a low-level.

In security world a fondamental mechanism of multi-processing concept a shared memory, threaded processing can help to nicely understood race condition and others bugs associated to this type of concepts.

1.1 - History and Begining

x86-64 instruction set for x86-64 class of processor using by 64-bit operation system. x86-64 is a CISC (Complex Instruction Set Computing) We have multiple internals processor design philosophy

(x86_64, AMD64, x64) is a 64-bit extension of x86 instruction set First annonced and available is AMD Opteron in 2003. It introduces 64-bit mode and compatible mode, and new 4 level paging mechanism. Compared to 32-bit it support virtual and physical memory, and a number of GPR (General Purpose Register) from 8 to 16 . SSE2 instruction in 64-bit mode permit a floatin-point arithmetic.

128-bit vector register (XMM registers), it can store one or two double precision floating-point number up to 4 single precision

  • 64-bit mode instructions are modified to support 64-bit operands and 64-bit addressing mode.
  • x86-64 architecture use a 16-bit and 32-bit applications to run on system
  • Opteron, Athlon followed by X2, X3, X4 to indicate the number of cores and XLT models, same for Turion, Sempron, Phenom

It important to note that a reader would have a prerequist in C, C++ or Java, because many explation assume that reader is already familiar with programming concepts and with linux-based operating system and it’s command line interface.

If not i highly recommended you to do a C Pool of 42 School.