WARNING:
JavaScript is turned OFF. None of the links on this concept map will
work until it is reactivated.
If you need help turning JavaScript On, click here.
Este Cmap, tiene información relacionada con: introducción al isa, Ensamblador del x86-64 DESTACA • El lenguaje ensamblador no es más que una forma intermedia entre “lo que piensa el programador” y como “la máquina realmente lo implementa”... ...pero aún así, esta forma se expresa de forma aún legible de modo relativamente fácil para un humano., Repertorios de instrucciones (ISA) destaca En esta asignatura: aspectos básicos del ISA x86-64 – Presente en la gran mayoría de PCs, desde portátiles hasta servidores, VARIABLES DESTACA Las variables globales del programa (p.e. array) están almacenadas de modo explícito en el segmento de datos (.data)., Las variables globales del programa (p.e. array) están almacenadas de modo explícito en el segmento de datos (.data). donde Cambiando los valores concretos en el fichero fuente main.c y recompilando podríamos comprobar cómo cambian las directivas de ensamblador correspondientes., Repertorios de instrucciones (ISA) destaca • Cada CPU posee su propio repertorio de instrucciones, más conocido como ISA (Instruction Set Architecture): – El más extendido es el Intel x86 (procesadores de Intel y AMD, tipo CISC) – En la asignatura de Estructura y Tecnología de Computadores (2º cuatrimestre de 1º) estudiaremos el ISA de MIPS (tipo RISC) y aprenderemos a programar con él – Otros ISA: ARM, Power (IBM), SPARC (Oracle), RISC-V (UC Berkeley), Ensamblador del x86-64 DESTACA • En primer lugar, el compilador traduce las instrucciones del lenguaje de alto nivel (en este caso C) a lenguaje ensamblador., Ensamblador del x86-64 DESTACA El segmento de código (.text) contiene las instrucciones en ensamblador. Cada instrucción indica una operación elemental directamente realizable por la CPU., Ensamblador del x86-64 DESTACA Las etiquetas (identificadores seguidos de :) representan direcciones de memoria (aún no están instanciadas a direcciones concretas): • Algunas vienen del propio código fuente en C (p.e. array:) • Otras son creadas automáticamente por el compilador (p.e. .LC0:). – También en el segmento de código (no sólo en los datos), Repertorios de instrucciones (ISA) destaca • Cada instrucción ensamblador representa una operación elemental realizable directamente por la CPU – Aunque las CPUs x86 actuales internamente traducen las instrucciones CISC complejas a otras micro-instrucciones más sencillas (tipo RISC), Introducción al ISA Intel x86-64 I ddestaca Ensamblador del x86-64, Ensamblador del x86-64 DESTACA VARIABLES, Repertorios de instrucciones (ISA) destaca • Objetivos de un ISA – Facilitar el diseño del procesador y del compilador – Maximizar el rendimiento y minimizar el coste – En el caso de Intel, un objetivo añadido fue la compatibilidad de código con procesadores anteriores, lo que llevó a soluciones de compromiso quizá menos elegantes y eficientes para mantener la cuota de mercado., Ensamblador del x86-64 DESTACA En lugar de eso, aquí vamos a ir siguiendo todos los pasos que en realidad ocurren en esta compilación, para ver todos los niveles de la jerarquía de traducción, VARIABLES DESTACA La variable i es local a la función main(), y no se almacena en el segmento de datos sino en una zona de la memoria llamada pila., Introducción al ISA Intel x86-64 I ddestaca Repertorios de instrucciones (ISA), En lugar de eso, aquí vamos a ir siguiendo todos los pasos que en realidad ocurren en esta compilación, para ver todos los niveles de la jerarquía de traducción LOS NIVLES SON 1. Lenguaje de alto nivel (C) 2. Lenguaje ensamblador de la arquitectura Intel x86-64 3. Código máquina x86-64 4. Código máquina x86-64 enlazado y cargado en memoria