Modo extendido de 64 bits
El modo extendido de 64 bits es utilizado por los sistemas operativos de 64 bits. Dentro de este modo general, se dispone de un modo de operación de 64 bits y de un modo de compatibilidad con los modos de operación de las arquitecturas de 16 y 32 bits.
En un sistema operativo de 64 bits, los programas de 64 bits se ejecutan en modo de 64 bits y las aplicaciones de 16 y 32 bits se ejecutan en modo de compatibilidad. Los programas de 16 y 32 bits que se tengan que ejecutar en modo real o virtual x86 no se podrán ejecutar en modo extendido si no son emulados.
Modo de operación | Sistema operativo | Las aplicaciones | Por defecto | Tamaño de los registros de propósito general | ||
Tamaño (en bits) de las direcciones | Tamaño (en bits) de los operandos | |||||
Modo | Modo de 64 bits | Sistema operativo de 64 bits | sí | 64 | 32 | 64 |
Modo compatibilidad | no | 32 | 32 | |||
16 | 16 | 16 | ||||
Modo | Modo protegido | Sistema operativo de 32 bits | no | 32 | 32 | 32 |
16 | 16 | |||||
Modo | 16 | 16 | 16 | |||
Modo real | Sistema operativo de 16 bits |
El registro contador de programa (RIP, instruction pointer register) es de 64 bits.
El registro de bits de estado también es de 64 bits (RFLAGS). Los 32 bits de la parte alta están reservados; los 32 bits de la parte baja son accesibles y corresponden a los mismos bits de la arquitectura IA-32 (registro EFLAGS).
Los registros de segmento en general no se utilizan en el modo de 64 bits.
La mayoria de los programas constan de directivas seguidas de una o más secciones. La lineas de código pueden tener una etiqueta opcional. La mayoria de las líneas tienen una instrucción seguida de 0 o más operandos.
label: instruction operands ; comment
Generalmente se escribe el código en la sección llamada .text y tus constantes como las cadenasde string en la sección .data
Directivas
Las directivas son pseudooperaciones que solo son reconocidas por el ensamblador. No se deben confundir con las instrucciones, a pesar de que en algunos casos pueden añadir código a nuestro programa. Su función principal es declarar ciertos elementos de nuestro programa para que puedan ser identificados más fácilmente por el programador y también para facilitar la tarea de ensamblaje.ReferencesCordoba Cabeza, M. L., Garcia Clemente, M. I., & Mendez Cavanillas, R. (2000). Estructura de computadores. Alfaomega Grupo Editor.Llamadas al sistema - Wiki de Sistemas Operativos. (n.d.). Lsi.us.es. Retrieved July 30, 2022, from https://1984.lsi.us.es/wiki-ssoo/index.php/Llamadas_al_sistemaNASM - The Netwide Assembler. (n.d.). Nasm.Us. Retrieved July 30, 2022, from https://www.nasm.us/doc/nasmdoc3.htmlnasmtutorial. (n.d.). Lmu.edu. Retrieved July 30, 2022, from https://cs.lmu.edu/~ray/notes/nasmtutorial/syscalls. (n.d.). Lmu.edu. Retrieved July 30, 2022, from https://cs.lmu.edu/~ray/notes/syscalls/