Tengo la impresión de que algunas personas que hacen ingeniería inversa
habitualmente conocen bien la CPU pero no tanto la x87 FPU, MMX, SSEs,
AVX y sus posibles aplicaciones. Por eso en esta serie de artículos
vamos a explicar como funciona todo esto en x86 y x86_64.
Además se explicará como jugar con todo esto desde el sistema operativo Windows y desde la perspectiva de un depurador.
Introducción:
Ojeando un poco de la wikipedia sobre las extensiones multimedia:
x86 (current):
- MMX (1996)
- 3DNow! (1998)
- Streaming SIMD Extensions (SSE) (1999)
- SSE2 (2001)
- SSE3 (2004)
- Supplemental SSE3 (SSSE3) (2006)
- SSE4 (2006)
- SSE5 (2007)
- Advanced Encryption Standard (AES) (2008)
- Advanced Vector Extensions (AVX) (2008)
- F16C (2009 (AMD), 2011 (Intel))
- XOP (2009)
- FMA instructions (FMA4: 2011, FMA3: 2012 (AMD), 2013 (Intel))
- Bit manipulation instructions (ABM: 2007, BMI1: 2012, BMI2: 2013, TBM: 2012)
x86 (planned)