es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la sintaxis de la palabra clave / instrucción “alinear” en el ensamblador x86?

Hasta donde entiendo, algunos objetos de la sección “datos” a veces necesitan alineación en el ensamblaje x86.

Un ejemplo que he encontrado es al usar movaps en x86 SSE: necesito cargar una constante especial para xors posteriores en un registro XMM.

El registro XMM tiene 128 bits de ancho y necesito cargar una ubicación de memoria de 128 bits en él, que también estaría alineada en 128 bits.

Con prueba y error, he deducido que el código que estoy buscando es:

sección .texto
foo:
  movaps xmm0, [xorconst]  ; esta es la parte de carga
  xor eax, eax
  ret

sección .datos
  alinear 16  ; alinear a 16 bytes = 128 bits
  xor_const: dd 80000000h, 80000000h, 80000000h, 80000000h  ; la constante de 128 bits

Mis preguntas son:
– ¿En qué sabores de ensamblaje uso .align en lugar de alinear?
– ¿Necesito escribir esta palabra clave/instrucción antes de cada objeto de datos o hay una manera de escribirla solo una vez?
– ¿Cuál es una documentación relevante que puedo leer sobre esto?
– ¿”Alinear” es una palabra clave o una instrucción (o quizás algo más)?

Tags:  , , ,

Answer

Comments are closed.