CAPÍTULO 1 / ACERCA DE ESTE MANUAL
Enviado por tomas • 10 de Junio de 2018 • 10.686 Palabras (43 Páginas) • 432 Visitas
...
[pic 1]
Figura 1-1. Orden de bits y bytes
1.3.2 Bits Reservados y Compatibilidad del Software
En muchas descripciones de disposición de registro y memoria, ciertos bits están marcados como reservados. Cuando los bits están marcados como reservados, es esencial para la compatibilidad con futuros procesadores que el software considere que estos bits tienen un efecto futuro, aunque desconocido. El comportamiento de bits reservados debe considerarse no sólo indefinido, sino impredecible.
El software debe seguir estas pautas al tratar con bits reservados:
• No dependa de los estados de ningún bit reservado al probar los valores de los registros que contienen dichos bits. Máscara de los bits reservados antes de la prueba.
• No dependa de los estados de ningún bit reservado cuando se almacena en la memoria o en un registro.
• No dependa de la capacidad de retener información escrita en los bits reservados.
• Al cargar un registro, siempre cargue los bits reservados con los valores indicados en la documentación, si los hay, o recárguelos con valores previamente leídos en el mismo registro.
1.3.2.1 Operandos de instrucción
Cuando las instrucciones se representan simbólicamente, se utiliza un subconjunto del lenguaje de ensamblaje IA-32. En este subconjunto, una instrucción tiene el siguiente formato:
Etiqueta: mnemonic argumento1, argumento2, argumento3
dónde:
• Una etiqueta es un identificador seguido de dos puntos.
• Un mnemónico es un nombre reservado para una clase de opcodes de instrucción que tienen la misma función.
• Los operandos argumento1, argumento2 y argumento3 son opcionales. Puede haber de cero a tres operandos, dependiendo del código de operación. Cuando están presentes, toman la forma de literales o identificadores para los elementos de datos. Los identificadores de operandos son nombres reservados de registros o se supone que se asignan a elementos de datos declarados en otra parte del programa (que puede que no se muestre en el ejemplo).
Cuando dos operandos están presentes en una instrucción aritmética o lógica, el operando derecho es la fuente y el operando izquierdo es el destino.
1.3.3 Números hexadecimales y binarios
Los números de la Base 16 (hexadecimales) están representados por una cadena de dígitos hexadecimales seguida por el carácter H (por ejemplo, 0F82EH). Un dígito hexadecimal es un carácter del siguiente conjunto: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F.
Los números de base 2 (binarios) están representados por una cadena de 1s y 0s, seguido a veces por el carácter B (por ejemplo, 1010B). La designación "B" sólo se utiliza en situaciones en las que pueda surgir confusión en cuanto al tipo de número.
1.3.4 Direccionamiento segmentado
El procesador utiliza el direccionamiento de bytes. Esto significa que la memoria se organiza y se accede como una secuencia de bytes. Si se está accediendo a uno o más bytes, se utiliza una dirección de byte para localizar la memoria de bytes u octetos. El rango de memoria que se puede tratar se denomina espacio de direcciones.
El procesador también admite el direccionamiento segmentado. Esta es una forma de direccionamiento donde un programa puede tener muchos espacios de direcciones independientes, llamados segmentos. Por ejemplo, un programa puede guardar su código (instrucciones) y apilarse en segmentos separados. Las direcciones de código siempre se refieren al espacio de código, y las direcciones de pila siempre se refieren al espacio de pila.
1.3.5 Una nueva sintaxis para los valores de CPUID, CR y MSR
Obtenga indicadores de características, estado e información del sistema utilizando la instrucción CPUID, comprobando los bits de registro de control y leyendo registros específicos del modelo. Estamos avanzando hacia una nueva sintaxis para representar esta información. Vea la Figura 1-2.
[pic 2]
Figura 1-2. Sintaxis para la presentación de datos de CPUID, CR y MSR
1.3.6 Excepciones
Una excepción es un evento que normalmente ocurre cuando una instrucción causa un error. Por ejemplo, un intento de dividir por cero genera una excepción. Sin embargo, algunas excepciones, como puntos de interrupción, ocurren bajo otras condiciones.
Algunos tipos de excepciones pueden proporcionar códigos de error. Un código de error informa información adicional sobre el error. A continuación se muestra un ejemplo de la notación utilizada para mostrar una excepción y un código de error:
#PF (código de error)
Este ejemplo hace referencia a una excepción de error de página en condiciones en las que se informa un código de error que nombra un tipo de falla. Bajo algunas condiciones, las excepciones que producen códigos de error pueden no ser capaces de informar un código exacto. En este caso, el código de error es cero, como se muestra a continuación para una excepción de protección general:
#GP (0)
CAPITULO 2 / ARQUITECTURAS INTEL® 64 E IA-32
El crecimiento exponencial de la potencia informática y la propiedad ha convertido a la computadora en una de las fuerzas más importantes que configuran los negocios y la sociedad. Las arquitecturas Intel 64 e IA-32 han estado a la vanguardia de la revolución informática y hoy en día es la arquitectura de ordenadores preferida, medida por las computadoras en uso y la potencia total de computación disponible en el mundo.
2.1 BREVE HISTORIA DE LA ARQUITECTURA INTEL® 64 Y IA-32
Las siguientes secciones proporcionan un resumen de las principales evoluciones técnicas de la arquitectura IA 32 a Intel 64: desde el procesador Intel 8086 hasta el último procesador Intel® Core® 2 Duo, Core 2 Quad y procesador Intel Xeon serie 5300 y 7300. Código de objeto creado para los procesadores lanzados ya en 1978 todavía se ejecuta
...