Inicio
Buscar
Ingresar
Registrarse
Starfield: el juego que revolucionará el espacio y la tecnología
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
ASM
»
¿Qué son los registros MMX y XMM?
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: ¿Qué son los registros MMX y XMM? (Leído 12661 veces)
3hy!
Pentesting & Web Pentest are my life!
{ L7 } Juanker
Mensajes: 1088
Codding since 2008 :3
¿Qué son los registros MMX y XMM?
«
en:
Diciembre 03, 2014, 09:53:45 am »
¿Alguien me puede echar una mano?
Sé que son registros y tal del procesador. Pero no sé qué tamaño tienen ni como modificarlos ni nada.
Cabe decir que estoy estudiando con el curso de ASM Nasm de Securitytube y me he quedado estancado en ese vídeo.
Las órdenes EAX, EBX y demás ¿Qué hacen? Sé que EAX mete algo en un registro pero las demás no. Si me lo pudieseis aclarar por aquí se agradecería.
Muchas gracias.
3xpl01tc0d3
En línea
If you wanna be a pentester learn how to code your exploits. Then learn to use msf, monkey.
b10s_0v3rr1d3
Administrador
{ L6 } Flooder del foro
Mensajes: 885
why not die?
Re:¿Qué son los registros MMX y XMM?
«
Respuesta #1 en:
Diciembre 03, 2014, 03:14:23 pm »
hi
primero te comento la parte que preguntas de mmx y xmm (que tiene bastante cosa), luego te doy una nota sobre la parte de eax,ebx... que comentas (que ahi tienes un error bastante grande)
tanto el mmx como el xmm es para entendernos como un conjunto de "instrucciones"/"registros" del tipo "SIMD" que es para poder trabajar en multiples datos mediante una sola instruccion (de ahi que es "Single Instruction Multiple Data")
seguramente (y como te comenta en los vids de ese curso), dichos "registros" utilizan una definicion como la siguiente [mmx0....mmx7 y xmm0....xmm7] y mediante ellos puedes hacer operaciones con lo que se llama FPU (la unidad de coma flotante).
una mejor forma para verlo es mediante una imagen:
como puedes ver, la gracia es poder jugar mediante una instruccion como puede ser; add, sub, mul (o imul para signed), div (lo mismo, idiv para signed)....
te adjunto un peque;o codigo de ejemplo que tambien puede ayudar (sacado de la red):
Código: Text
vec_res.x = v1.x + v2.x;
vec_res.y = v1.y + v2.y;
vec_res.z = v1.z + v2.z;
vec_res.w = v1.w + v2.w;
para poder hacer toda esta operacion con pocas instrucciones (y no tener que ir uno por uno), puedes utilizar la ventaja de este sistema haciendo lo siguiente:
Código: ASM
movaps
xmm0
,
[
v1
]
;xmm0 = v1.w | v1.z | v1.y | v1.x
addps
xmm0
,
[
v2
]
;xmm0 = v1.w+v2.w | v1.z+v2.z | v1.y+v2.y | v1.x+v2.x
movaps
[
vec_res
]
,
xmm0
si tienes cualquier duda o lo que sea, comentalo sin problema
ahora, referente a las "ordenes" eax, ebx que dices... en resumen te dire (para que veas el error) que no son instrucciones sino registros generales de la CPU (por lo que eax no mete nada en ningun registro si tu lo pones como tal ya que estas metiendo un registro como si fuera una instruccion)
para hacer lo que dices tu, se utiliza la instruccion 'mov' (de move):
Código: ASM
mov
eax
,
0x3
;ponemos un 3 en el registro EAX
tienes que tener en cuenta un detalle importante, para hacer lo que he hecho arriba, es algo chorra tirar de eax (ya que es un registro de 32b), seria mas correcto usar el ax (registro de 16b) o estirando mas al/ah (registro de 8b, al = 0-7, ah = 8-15) si miramos de tener un codigo lo mas optimo posible claro esta (sino con el de 32b si estas empezando ya tira bien xD)
cualquier cosa no dudes en preguntar, nos leemos
p.s.
aviso que la syntax que he utilizado es la Intel, no la AT&T
En línea
3hy!
Pentesting & Web Pentest are my life!
{ L7 } Juanker
Mensajes: 1088
Codding since 2008 :3
Re:¿Qué son los registros MMX y XMM?
«
Respuesta #2 en:
Diciembre 05, 2014, 02:46:25 pm »
Gracias b10s,
A ver que me aclare...
Todo lo he entendido de maravilla, lo has explicado genial
(Tú para profesor!
)
Lo que no entiendo es la sintaxis. Yo uso NASM. ¿Qué sintaxis me corresponde? ¿Intel o AT&T? A mi me suena que la Intel, por lo que me dijo Ksha. ^^
No dudes que cualquier duda de ASM que tenga te la haré llegar xD
¡Saludos!
En línea
If you wanna be a pentester learn how to code your exploits. Then learn to use msf, monkey.
stakewinner00
{ L7 } Juanker
Mensajes: 1010
Re:¿Qué son los registros MMX y XMM?
«
Respuesta #3 en:
Diciembre 05, 2014, 06:06:26 pm »
Puedes usar intel o at&t en nasm, pero en lo personal estoy acosumbrado a la intel y me parece más clara. Sobre nasm vs yasm vs otros compilers yo prefiero yasm a nasm, por lo que vi nasm hace simplificaciones que si estas aprendiendo quizás no quieres que lo haga automáticamente y prefieres ver el error xD.
Para futuras dudas con el ASM de intel puedes consultar sus pdf y documentación oficial
https://software.intel.com/sites/default/files/m/d/4/1/d/8/Introduction_to_x64_Assembly.pdf
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
Saludos
En línea
Imprimir
Páginas: [
1
]
Ir Arriba
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
ASM
»
¿Qué son los registros MMX y XMM?
Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso...
OK
Learn more