Entradas

Registros de Emu8086

 2.1. Registros de datos Los registros de datos son de 16 bits, aunque están divididos. lo que permite su acceso en 8 bits. Estos registros son de propósito general aunque todos tiene alguna función por defecto.   AX (acumulador) se usa para almacenar el resultado de las operaciones, es al único registro con el que se puede hacer divisiones y multiplicaciones. Puede ser accedido en 8 bits como AH para la parte alta (HIGH) y AL (LOW) para la parte baja.  BX (registro base) almacena la dirección base para los accesos a memoria. También puede accederse como BH y BL, parte alta y baja respectivamente.  CX (contador) actúa como contador en los bucles de repetición. CL (parte baja del registro) almacena el desplazamiento en las operaciones de desplazamiento y rotación de múltiples bits.  DX (datos) es usado para almacenar los datos de las operaciones.  2.2. Registros de segmento  Los registros de segmento son de 16 bits (como ya se dicho antes) y contienen e...

Lenguaje Ensamblador

 section .data- Declaracion de variables     msg db "Hello world!", 0ah- MSG Guarda el mensaje recibido section .text     global _start- Etiqueta que muestra el inicio del codigo _start:     mov rax, 1- Transfiere datos entre celdas de memoria y registros.     mov rdi, 1     mov rsi, msg     mov rdx, 13     syscall     mov rax, 60     mov rdi, 0     syscall- lleva a cabo la llamada al sistema cuya interfaz con el lenguaje ensamblador está definida por number con los argumentos especificados. section .data: Esta línea indica el comienzo de la sección de datos del programa, donde se definen las variables y constantes utilizadas. msg db "Hello world!", 0ah: Aquí se define la variable msg como una cadena de caracteres que contiene el mensaje "Hello world!". El 0ah al final indica un salto de línea. section .text: Esta línea indica el comienzo de la sección de código del programa, donde s...

Generación de código objeto

Imagen
4.1 Registros ¿Qué son? Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo. Algunos registros de propósito general son utilizados para cierto tipo de funciones. Existen registros acumuladores, puntero de instrucción, de pila, etc. Los registros son espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. ¿Quiénes lo utilizan? Antes de nada, para el desarrollo de esta parte hablaremos indistintamente de registros de activación o de marcos de pila. Esto se debe a que en la documentación encontrada sobre el manejo de los registros ebp y esp se hace mención a dicho concepto de marco de   pila.   Puesto   que   el   lenguaje   permite   recursividad,   los   registros   de   activación   se asignan dinámica mente.  Dist...

Comparación de optimización por ciclos

Imagen
 

Optimizacion

 3.1 TIPOS DE OPTIMIZACION En ciencias de la computación, un compilador  optimizador es un compilador que trata  de  minimizar  ciertos  atributos  de  un  programa  informático  con  el  fin  de aumentar la eficiencia y rendimiento. Las optimizaciones del compilador se aplican generalmente  mediante  una  secuencia  de  transformaciones  de  optimización, algoritmos  que  transforman  un  programa  para  producir  otro  con  una  salida semánticamente equivalente pero optimizado.   Generalmente hay varios aspectos que se desean optimizar:  •  Optimización temporal: Reducir el tiempo de ejecución del programa.  •  Optimización espacial: Reducir la cantidad de espacio en memoria que ocupa el programa en ejecución. •  Reducir el tamaño del programa.  •  Minimizar  la  potencia ...

2.3.6 Estructuras

Imagen
  Estructura y fases de un compilador (2) Análisis lineal También conocido como: análisis léxico o exploración. Ejemplo, en la proposición de asignación: posicion = inicial + velocidad * 60 Se identifican los siguientes componentes léxicos Identificador (posicion) Símbolo de asignación (=) Identificador (inicial) Signo de suma (+) Identificador (velocidad) Signo de multiplicación (*) Número (60) 12.  Estructura y fases de un compilador (3) Análisis jerárquico También llamado análisis sintáctico. Implica agrupar los componentes léxicos en frases gramaticales que el compilador utiliza para sintetizar la salida. Por lo general, las frases gramaticales se representan mediante un árbol de análisis sintáctico. Ejemplo: Proposición de asignación Identificador posición = expresión expresión identificador + expresión inicial expresión identificador * expresión velocidad Número 60 13.  Estructura y fases de un compilador (4) La estructura jerárquica de un programa normalmente se ex...