¿Que es exactamente la directiva .x86 de MASM?

Iniciado por Usuario887, 21 Febrero 2021, 21:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Usuario887

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:

CitarEnables 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

¿Como que "Activa"? ¿Por qué es necesario "Activarlas"?

Saludos.

Eternal Idol

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.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Usuario887

Pero es que ¿como va a "habilitarlas"? El procesador las soporta por defecto, ¿no?




Ni siquiera por defecto, sino por diseño.

Eternal Idol

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.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Usuario887

¿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?