Acabo de instalar mingw32 en mi cuadro Vista de 32 bits para experimentar con el ensamblado gcc en línea. Lamentablemente, el compilador gcc de 32 bits no reconoce los registros de 64 bits, , como %% rax.Registros de 64 bits en ventanas de 32 bits
Antes me hundo mucho tiempo en tratar de montar un nuevo conjunto de herramientas, tengo algunas preguntas:
¿Hay algún modo de procesador en el x86 (Intel Core Duo, T5800) que evitará que se de utilizar los registros de 64 bits mientras se ejecuta Vista32 (es decir, ¿es esta una causa perdida)?
Suponiendo que la respuesta al # 1 es "Por supuesto puede usar% rax, etc. en ventanas de 32 bits", se puede configurar gcc para que reconozca los registros de 64 bits Y cree un ejecutable que se ejecutará bajo Ventanas de 32 bits? Sé que gcc tiene una opción -m64, pero mi versión que vino con mingw32 no tiene compilación de 64 bits. Estoy dispuesto a reconstruir gcc si puede compilar aplicaciones de 32 bits que tienen acceso a 64 bits. se registra, pero no quiero pasar por ese dolor si no va a funcionar de todos modos.
Aparte: Esto es realmente un primer paso hacia el aprendizaje de las instrucciones SSE2 (sí, lo sé, existen características intrínsecas del compilador, pero me gustaría entenderlo desde un nivel de la máquina hacia arriba).
¡Gracias de antemano por cualquier respuesta!
-Jim
Gracias por una excelente respuesta. Re: Vista de 64 bits ... me conecto a microcontroladores a través de una interfaz que (creo) usa controladores sin firmar, por lo que no hay alegría allí. ¿Puedo ejecutar una máquina virtual de 64 bits en ventanas de 32 bits? Actualmente tengo RH9 de 32 bits y Fedora 11 ambos bajo VMWare. Buscaré en la máquina virtual de 64 bits.Probablemente salte 64 aunque si puedo acceder a SSE2 desde 32 bits (estaba bajo la impresión errónea de que SSE2 solo estaba disponible desde 64 bit). ¡Gracias otra véz! – Jim
No diría que es complicado. La razón principal por la que no se admite es que un sistema operativo de 32 bits no guardará/restaurará todos los registros en los conmutadores de tareas. El sistema operativo siempre debe saber cómo guardar/restaurar todo el estado arquitectónico visto por un proceso. (Esta es la razón por la que se necesita soporte de sistema operativo antes de que los procesos de espacio de usuario puedan usar SSE, pero no se necesita soporte adicional para MMX). –