Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: marax en 21 Febrero 2021, 21:33 pm



Título: ¿Que es exactamente la directiva .x86 de MASM?
Publicado por: marax en 21 Febrero 2021, 21:33 pm
Si no especifico .686 en mis programas, MASM manifiesta incontables errores.
¿Qué es exactamente esta directiva? ¿Qué hace exactamente? ¿Es como un preprocesado de C o más bien una macro? Y si es una macro ¿Qué hace exactamente la macro dependiendo del procesador que se especifica?

En la MSDN:

Citar
Enables assembly of nonprivileged instructions for the Pentium Pro processor. (32-bit MASM only.)
https://docs.microsoft.com/en-us/cpp/assembler/masm/dot-686?view=msvc-160 (https://docs.microsoft.com/en-us/cpp/assembler/masm/dot-686?view=msvc-160)

¿Como que “Activa”? ¿Por qué es necesario “Activarlas”?

Saludos.


Título: Re: ¿Que es exactamente la directiva .x86 de MASM?
Publicado por: Eternal Idol en 21 Febrero 2021, 21:50 pm
Si usas .686 no necesariamente funcione tu programa en un procesador 486 por ejemplo, puede ser que uses instrucciones que no sean reconocidas ... entonces haciendo .686 las habilitas para el ensamblador.


Título: Re: ¿Que es exactamente la directiva .x86 de MASM?
Publicado por: marax en 21 Febrero 2021, 22:20 pm
Pero es que ¿como va a “habilitarlas”? El procesador las soporta por defecto, ¿no?



Ni siquiera por defecto, sino por diseño.


Título: Re: ¿Que es exactamente la directiva .x86 de MASM?
Publicado por: Eternal Idol en 21 Febrero 2021, 22:41 pm
Si pero es algo para el ensamblador (MASM), el procesador entendera los opcodes pero si el ensamblador no reconoce las instrucciones no los va a generar en primer termino.


Título: Re: ¿Que es exactamente la directiva .x86 de MASM?
Publicado por: marax en 22 Febrero 2021, 15:33 pm
¿O sea que esas directivas son modos del ensamblador? En ese caso deberian poder especificarse en linea de comandos asi como en el mismo codigo, ¿No?