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.