ELO311 Estructuras de Computadores Digitales. Ambiente de Ejecución de Funciones

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ELO311 Estructuras de Computadores Digitales. Ambiente de Ejecución de Funciones"

Transcripción

1 ELO311 Estructuras de Computadores Digitales Ambiente de Ejecución de Funciones Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA material del curso anterior ELO311 del Prof. Leopoldo Silva material del curso CSE331 de Mary Jane Irving de Penn State

2 Repaso: Organización MIPS hasta ahora src1 addr src2 addr dst addr write data Processor Register File 32 registers ($zero - $ra) 32 bits src1 data src2 data read/write addr 32 Memory words Exec br offset PC 32 Add 32 4 Fetch 32 PC = PC+4 Decode Add 32 ALU 32 read data write data byte address (little Endian) 32 bits word address (binary)

3 Repaso: MIPS ISA hasta ahora Category Instr Op Code Example Meaning Arithmetic add 0 and 32 add $s1, $s2, $s3 $s1 = $s2 + $s3 (R & I format) subtract add immediate 0 and 34 8 sub $s1, $s2, $s3 addi $s1, $s2, 6 $s1 = $s2 - $s3 $s1 = $s2 + 6 or immediate 13 ori $s1, $s2, 6 $s1 = $s2 v 6 Data Transfer (I format) load word store word load byte lw $s1, 24($s2) sw $s1, 24($s2) lb $s1, 25($s2) $s1 = Memory($s2+24) Memory($s2+24) = $s1 $s1 = Memory($s2+25) store byte 40 sb $s1, 25($s2) Memory($s2+25) = $s1 load upper imm 15 lui $s1, 6 $s1 = 6 * 2 16 Cond. Branch (I & R format) br on equal br on not equal set on less than set on less than immediate and beq $s1, $s2, L bne $s1, $s2, L slt $s1, $s2, $s3 slti $s1, $s2, 6 if ($s1==$s2) go to L if ($s1!=$s2) go to L if ($s2<$s3) $s1=1 else $s1=0 if ($s2<6) $s1=1 else $s1=0 Uncond. Jump (J & R format) jump jump register jump and link 2 0 and 8 3 j 2500 jr $t1 jal 2500 go to go to $t1 go to 10000; $ra=pc+4

4 Repaso: Registros MIPS Nombre $zero $v0 - $v1 $a0 - $a3 $t0 - $t7 $s0 - $s7 $t8 - $t9 $gp $sp $fp $ra Numero Registro Uso the constant 0 returned values arguments temporaries saved values temporaries global pointer stack pointer frame pointer return address Debe preservar en llamada? n.a. no no no yes no yes yes yes yes

5 Lenguajes Interpretados vs Compilados Un interpretador es un programa que ejecuta otros programas. Scheme Java bytecode Java C++ C Assembly machine language Fácil de programar Ineficiente para Interpretar Eficiente para interpretar Difícil de programar Traducción de lenguajes es otra opción. En general, se interpreta un lenguaje de alto nivel (e.g. Java) cuando su eficiencia no es critica y se traduce a un lenguaje de nivel mas bajo para mejorar su desempeño.

6 Jerarquía de Traducción del Código C program compiler assembly code assembler object code library routines linker machine code executable loader memory

7 Compilador Transforma el programa C en un programa en asembler Ventajas de lenguajes de alto nivel (e.g. C) Menor numero de líneas de código Mas fácil entender y depurar Los compiladores de hoy pueden producir código asembler casi tan bueno como el de un programador experto, muchas veces mejor para programas grandes Código mas pequeño significa ejecución mas rápida y menor consumo de energía

8 Ensamblador (Assembler) Transforma código assembler en código objeto (e.g. código de maquina) Ventajas del assembler Mucho mas fácil que recordar códigos binarios (e.g op codes) Se puede usar etiquetas para direcciones y dejar que el ensamblador haga los calculos de saltoscan use labels for addresses and let the assembler do the arithmetic Se pueden usar seudo instrucciones (e.g. macros) Hay que recordar que el código de maquina es la realidad que se ejecuta Cuando se considera la eficiencia de cierto código hay que contar las instrucciones reales ejecutadas no el tamaño del código

9 Otras Tareas del Ensamblador Determina direcciones binarias correspondientes a las etiquetas (e.g de saltos y bifurcaciones) Mantiene información de las etiquetas usadas en bifurcaciones y transferencias de datos en una tabla de símbolos Pares de símbolos y direcciones Convierte seudo instrucciones en código asembler legal Usa el registro $at para esto Convierte bifurcaciones a ubicaciones lejanas en una bifurcación seguida de un salto (jump) Convierte instrucciones con valores inmediatos grandes en load upper (e.g. lui) seguido por un or inmediato (e.g. ori) Convierte números especificados en decimal y hex en sus binarios correspondientes Convierte caracteres a los valores binarios especificados por la tabla ASCII

10 Partes de un Archivo Objeto Encabezado de Archivo Objeto: tamaño y posición de los siguientes elementos Modulo Text: código de objeto (e.g. código maquina) Modulo de Data: datos que acompañan al código Datos estáticos datos que duran toda la vida del programa (e.g. globales) Datos dinámicos crecen y se achican a medida que el programa los usa Información de reubicación (Relocation information): identifica instrucciones que están localizados en direcciones absolutas esas que no son relativas a un registro (e.g., jump destination addr) Tabla de símbolos: etiquetas que no están definidas (e.g., referencias a funciones o datos externos) Información para la depuración

11 Organización de Memoria en MIPS (spim) $sp Memory Mem Map I/O f f f f f f f c Kernel Code & Data Stack 7f f e f f fc 2 30 words $gp PC Dynamic data Static data Your Code Reserved OS

12 Enlazador (Linker) Toma todo el código objeto ensamblado previamente y lo enlaza Mucho mas rápido que juntar el código maquina a mano! Decide en el patrón de la ubicación de código y datos para cada segmento de código objeto Cada segmento de código objeto fue ensamblado separadamente y cada uno asume que el comienzo de su código es 0x y que el comienzo de sus datos estáticos es 0x Las direcciones absolutas (e.g. Absolute addresses) tienen que ser reubicadas (e.g relocated) para reflejar el punto de comienzo de cada modulo de código y datos Usa la información en la(s) tablas de símbolos para resolver todas etiquetas indefinidas Bifurcaciones, saltos y direcciones de datos a segmentos externos

13 Cargador (e.g. Loader) Copia el código ejecutable almacenado en disco a la memoria en la dirección de comienzo establecida por el sistema operativo Inicializa los registros de maquina y también el puntero al stack a la primera ubicación libre (0x7ffe fffc) Copia los parámetros (si es que hay) al stack Salta a la rutina de comienzo (e.g. start-up routine) en la dirección del PC 0x on xspim La rutina de comienzo copia los parámetros de main a los registros de argumentos y después llama el código de main con un jal main

14 Ejemplo: foo.c C program: foo.c Compiler Assembly program: foo.s Assembler Object(mach lang module): foo.o Linker lib.o Executable(mach lang pgm): a.out Loader Memory

15 Ensamblador (assembler) Input: Código assembler (e.g., foo.s para MIPS) Output: Código Objeto, (e.g., foo.o para MIPS) Lee y usa Directivos Remplaza seudo instrucciones (Macros) Seudo instrucciones son instrucciones de conveniencia (utilidad) que corresponden a múltiples instrucciones reales (se expanden en machine language a instrucciones reales) Produce código de maquina (Machine Language) Crea archivo objeto (Object File)

16 Directivos Dan instrucciones al ensamblador y depurador.text: Poner items subsecuentes en segmento de texto (machine code).data: Poner items subsecuentes en segmento de datos (representacion binaria de datos en archivo fuente).globl sym: declara sym como global y puede ser referenciado de otros archivos.asciiz str: Almacenar string str en memoria y terminarlo con nulo.word w1 wn: Almacenar los n items en palabras sucesivas de 32-bits en memoria.half h1 hn: Almacenar los n items en ½ palabras sucesivas de 16-bits en memoria.byte b1 bn: Almacenar los n items en bytes sucesivos en memoria.align n: Alinea la memoria para que los datos comiencen en una ubicación correcta dado el tamano de los datos (alinea los datos en una celda de memoria capaz de contener 2 n bytes)

17 Directivos II.frame frame-reg, offset, return_pc_reg Específica el registro a usar para el stack, tamaño del contexto del stack (offset) en palabras y el registro con dirección de retorno. Ejemplo:.frame sp, 24, ra Indica un stack usando sp de 24 bytes y dirección de retorno ra.mask mask_addr, offset Declara cuales registros han sido guardados, permitiendo que el depurador localice variables guardadas en el stack. offset indica la ubicación del registro almacenado en la direccion mas alta relativa al puntero del frame. Ejemplo:.mask 0x , -4 Indica que se guardo el registo $31 en el stack y que el registro almacenado en la dirección mas alta (highest address) esta a 4 bytes menos que el frame pointer (i.e. el TOF o Top Of Frame).

18 Reemplazo de seudo instrucciones Pseudo: Real: subu $sp,$sp,32 addiu $sp,$sp,-32 sd $a0, 32($sp) mul $t7,$t6,$t5 move $t0, $t6 sw $a0, 32($sp) sw $a1, 36($sp) mult $t6,$t5 mflo $t7 addu $t0, $t6, $zero o or $t0, $t6, $zero addu $t0,$t6,1 ble $t0,100,loop addiu $t0,$t6,1 slti $at,$t0,101 bne $at,$0,loop la $t1, i (en 0x ) lui $t1,0x1001 ori $t1,$t1,0x0004 Nota: macro mul $t7,$t6,$t5 significa $t7 = $t6 * $t5 (resultado en registro $t7 de 32bits) mult $t6,$t5 significa {Hi, Lo} = $t6 * $t5 (guardando resultado en regs. Hi,Lo) se rescata el resultado usando mflo y mfhi, mult no chequea overflow

19 Variables Se denominan variables locales a las definidas dentro de una función. En assembler se requiere tener una zona de la memoria en que se almacenarán estas variables. De tal modo que cuando se ingresa a una función, se crea el espacio en el stack; y cuando se sale de la función el espacio es devuelto, y puede ser reutilizado por otras variables locales. El compilador intenta emplear el máximo de variables locales localizadas en registros (e.g. $s0, $s1,, $s7, $t0 ) Las variables locales que deseen ser almacenadas en registros, se emplean los registros $sn (pero deben ser preservados sus contenidos antes de ser empleados por la función, y recuperados sus valores originales antes de salir de la función) esto es por si otras funciones necesitan los valores previamente guardados en $sn. Durante la ejecución pueden emplearse libremente los registros $tn Los argumentos se pasan en los registros $a0 hasta $a4 Los valores de retorno usan registros $v0 y $v1

20 Ejemplo: Un programa simple Este ejemplo, en C, muestra un programa simple: int i = 0; void main(void) { i = 5; }

21 Ejemplo: Un programa simple (cont) En assembler:.data 0x # comienzo segmento datos i:.word 0.text.globl main main: # inicia variable i, en zona estática, con constante 5. li $t3, 5 # t3=5 Macro que puede escribirse: # ori $t3,$zero,5

22 Ejemplo: Un programa simple (cont) En assembler: la $t0, i # t0=&i t0 es un puntero. Apunta a # variable i. # sin usar macro la: lui $t0, 0x1001 # ori $t0, $t0, 0x0000 sw $t3, 0($t0) # *t0=t3 Escribe en lo que apunta t0: i=5 # Los 2 comandos anteriores pueden escribirse con macro: sw $t3, i($zero) jr ra

23 Ejemplo: Un programa simple2 El siguiente programa declara algunas variables int i1 = 0, i2 = 1; int arr[5] = { 0, 1, 2, 3, 4}; char ch[] = "Hola"; int main(void) { // como j1 y j2 no se usan int j1, j2; // lcc no guarda espacio en return(0); // el stack para ellas }

24 Ejemplo: Un programa simple2 (cont) Version en assembler.set reorder.globl i1.sdata.align 2 i1:.word 0x0.globl i2.sdata.align 2 i2:.word 0x1 # Permite que el assembler reordene instrucciones # i1 es una referencia global # small data define memoria en una region de 64KB # alineamiento de palabra

25 Ejemplo: Un programa simple2 (cont)....globl arr.data.align 2 arr:.word 0x0.word 0x1.word 0x2.word 0x3.word 0x4.globl ch.data.align 0 ch:.byte 72.byte 111.byte 108.byte 97.byte 0 # arr es una referencia global # data contiene memoria con simbolo que se direccionan # con 32 bits # ch es una referencia global

26 Ejemplo: Un programa simple2 (cont)....globl main # main es una referencia global.text # esta region es de instrucciones (codigo).align 2.ent main # inicio de funcion main main:.frame $sp,0,$31 addu $2,$0, $0 # setear valor de retorno: $v0=0 L.1: jr $31 # retornar de la funcion: jr $ra.end main # fin de funcion main # frame de funcion main de tamaño zero (no se usan)

27 Ejemplo: Un programa simple2 (versión 2) El siguiente programa declara algunas variables int i1 = 0, i2 = 1; int arr[5] = { 0, 1, 2, 3, 4}; char ch[] = "Hola"; int main(void) { int j1=0; // guarda espacio en el stack j1=j1 + 5; return(j1); }

28 Ejemplo: Un programa simple2 (cont) Version en assembler.set reorder.globl i1.sdata.align 2 i1:.word 0x0.globl i2.sdata.align 2 i2:.word 0x1 # Permite que el assembler reordene instrucciones # i1 es una referencia global # small data define memoria en una region de 64KB # alineamiento de palabra

29 Ejemplo: Un programa simple2 (cont)....globl arr.data.align 2 arr:.word 0x0.word 0x1.word 0x2.word 0x3.word 0x4.globl ch.data.align 0 ch:.byte 72.byte 111.byte 108.byte 97.byte 0 # arr es una referencia global # data contiene memoria con simbolo que se direccionan # con 32 bits # ch es una referencia global

30 Ejemplo: Un programa simple2 (cont)....globl main # main es una referencia global.text # esta region es de instrucciones (codigo).align 2.ent main # inicio de funcion main main:.frame $sp,4,$31 # frame de funcion main de cuatro palabras addu $sp,$sp,-4 # setear stack.mask 0x ,-4 # se guarda el registro $30 ($fp usado como $s8) sw $30,0($sp) # guardar $fp en el stack : 0($sp) move $30,$0 # $pf = 0 la $30,5($30) # $fp = $fp + 5 addu $2,$30, $0 # setear valor de retorno: $v0=$fp L.1: lw $30,0($sp) # restaura $fp del stack addu $sp,$sp,4 # restaura el stack jr $31 # retornar de la funcion: jr $ra.end main # fin de funcion main

31 Llamadas al sistema Para llamar al sistema operativo se usa la llamada syscall. syscall tambien se usa para hacer operaciones en punto flotante con el coprocesador. En el caso del MIPS, el coprocesador de punto flotante es el número 1. Existen 32 registros de punto flotante de 32 bits cada uno. Para manipular doubles se emplean registros pares; el par más el impar siguiente forman el espacio para el doble.

32 Llamadas al sistema (cont) Se ilustran algunas instrucciones para usar con el coprocesador Cop. z (0...3): lwcz Reg, 0($t2) #Load Word into Cop. z register Reg swcz Reg, 0($t2) #Store Word from Cop. z register Reg mfcz CPSrc, CPUDestt #Move from to Coproc. z to CPU CPdest mtcz CpuSrc, CPdest #Move from CpuSrc To Coproc.z reg. CPdest bczt label #Branch to label if Coprocessor z flag is set (True) bczf label #Branch to label if Coprocessor z flag not set (False) #Se emplean después de comparaciones en punto flotante

33 Ejemplo: Sumar dos números El siguiente segmento en C, produce la suma de dos números en punto flotante: #include <stdio.h> float x = 1.1; float y = 2.2; float z1, z2; int main (void) { z1 = x + y; printf("%f\n",z1); } z2 = x * y; printf("%f\n",z2); return(0);

34 Ejemplo: Sumar dos números (cont) Se traslada al siguiente código assembler:.data x:.float 1.1 # Variables en segmento de datos y:.float 2.2 # 0.22e+1 en notación científica. z1:.float 0.0 z2:.float 0.0 newline:.asciiz "\n".text.globl main main: la $t0, x # t0 = &x lwc1 $f0, 0($t0) # f0 = x (lectura desde memoria) la $t0, y lwc1 $f2, 0($t0) # f2 = y add.s $f4, $f0, $f2 # f4 = x + y

35 Ejemplo: Sumar dos números (cont) la $t0, z1 swc1 $f4, 0($t0) # t0 = &z1 # *t0 = f4 z1 = x + y (escritura en memoria) mov.s $f12, $f4 # argumento en $f12 li $v0,2 # print float syscall la $a0, newline # argumento en $a0 li $v0,4 # print string syscall mul.s $f4, $f0, $f2 la $t0, z2 swc1 $f4, 0($t0) # f4 = x * y # t0 = &z2 # *t0 = f4 z2 = x * y

36 Ejemplo: Sumar dos números (cont) mov.s $f12, $f4 # argumento en $f12 li $v0, 2 # print float syscall la $a0, newline # argumento en $a0 li $v0, 4 # print string syscall li $v0, 10 # exit Retorno al monitor. syscall Notar que se emplean registros pares para flotantes en simple precisión. El llamado número 10 al sistema retorna a la primera instrucción del trap handler, que opera como un monitor( o sistema operativo primitivo).

ELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo

ELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo ELO311 Estructuras de Computadores Digitales Operaciones MIPS para Control de flujo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer

Más detalles

Generación de un ejecutable

Generación de un ejecutable ASSEMBLER Generación de un ejecutable Programa de alto nivel Programa Compiler Assembler Linker Archivo Ejecutable Programa en lenguaje assembler Archivo Fuente Assembler Archivo Objeto Archivo Fuente

Más detalles

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization

Más detalles

ELO311 Estructuras de Computadores Digitales. Estructuras de Datos

ELO311 Estructuras de Computadores Digitales. Estructuras de Datos ELO311 Estructuras de Computadores Digitales Estructuras de Datos Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization

Más detalles

ELO311 Estructuras de Computadores Digitales. Ensamblador MIPS

ELO311 Estructuras de Computadores Digitales. Ensamblador MIPS ELO311 Estructuras de Computadores Digitales Ensamblador MIPS Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization &

Más detalles

El repertorio de instrucciones

El repertorio de instrucciones El repertorio de instrucciones Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura

Más detalles

Grupo de Arquitectura y Tecnología de Computadores (ARCOS)

Grupo de Arquitectura y Tecnología de Computadores (ARCOS) Grupo de Arquitectura y Tecnología de Computadores (ARCOS) http://arcos.inf.uc3m.es/~ec 2 http://arcos.inf.uc3m.es/~ec 4 http://arcos.inf.uc3m.es/~ec 5 http://arcos.inf.uc3m.es/~ec 6 Código fuente en

Más detalles

Organización de Computadoras. Principios de Conjuntos de Intrucciones

Organización de Computadoras. Principios de Conjuntos de Intrucciones Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática

Fundamentos de los Computadores Grado en Ingeniería Informática Repaso Arquitectura MIPS Fundamentos de los Computadores Grado en Ingeniería Informática Arquitectura MIPS Registros Instrucciones Organización de memoria Formato de las instrucciones Modos de direccionamiento

Más detalles

Procesador MIPS - Registros

Procesador MIPS - Registros MIPS Microprocessor without Interlocked Pipeline Stages Surgió a comienzos de los 80 en Stanford. Sintetiza las principales ideas de RISC. Arquitectura eficiente y simple. 1 Procesador MIPS - Registros

Más detalles

Tema 3 (III) Fundamentos de la programación en ensamblador

Tema 3 (III) Fundamentos de la programación en ensamblador Tema 3 (III) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenido } Fundamentos básicos de la

Más detalles

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Organización del Computador I Verano MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Arquitectura MIPS (R2000) Registros Formato de Instrucción

Más detalles

Organización procesador MIPS

Organización procesador MIPS Organización procesador MIPS Organización MIPS Memoria CPU Registros FPU Registros Alu Mul Div Hi Lo U. Aritmética Traps Manejo de Memoria Organización MIPS Unidad Aritmética y Lógica (ALU). Unidad Aritmética

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Programación Assembler.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Programación Assembler. 2. Creación del ambiente de trabajo. Una vez instalado el compilador cruzado lcc, éste queda en C:\Program Files\lcc\4.1 Conviene crear una subcarpeta para colocar los ejemplos. Sea ésta ej. En la carpeta

Más detalles

Creación del ambiente de trabajo.

Creación del ambiente de trabajo. Capítulo 2. 1 Creación del ambiente de trabajo. Una vez instalado el compilador cruzado lcc, éste queda en C:\Program Files\lcc\4.1 Conviene crear una subcarpeta para colocar los ejemplos. Sea ésta ej.

Más detalles

Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2

Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2 Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2 Instrucciones de control de flujo Arquitectura de Computadores

Más detalles

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina. MIPS Funciones 1 Funciones Diseño de funciones. Uso de instrucción jal y retorno de subrutina. Se suelen denominar funciones, procedimientos, subrutinas, subprogramas a las estructuras que emplean los

Más detalles

MIPS. Universidad de Sonora 2

MIPS. Universidad de Sonora 2 MIPS MIPS (Microprocessor without Interlocked Pipeline Stages) es una familia de microprocesadores RISC desarrollada por MIPS Technologies desde 1981 y por Imagination Technologies desde 2012. Principio

Más detalles

3. Instrucciones: lenguaje de la máquina

3. Instrucciones: lenguaje de la máquina 3. Instrucciones: lenguaje de la máquina Fundamentos de Computadores Ingeniería de Telecomunicación Raúl Durán Díaz Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Raúl

Más detalles

Unidad 3. Facultad de Ciencias Departamento de Electrónica

Unidad 3. Facultad de Ciencias Departamento de Electrónica Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad 3 Instrucciones: Lenguaje de la Computadora Dra. Ruth M. Aguilar Ponce Primavera Unidad 3 Operaciones del

Más detalles

Cuando se ejecuta un procedimiento, intrínsecamente se están realizando los siguientes pasos:

Cuando se ejecuta un procedimiento, intrínsecamente se están realizando los siguientes pasos: 2.5 Soporte de procedimientos El manejo de procedimientos o rutinas es uno de los aspectos más importantes de la programación estructurada; por lo que cualquier repertorio de instrucciones debe de incluirlo

Más detalles

Laboratorio 2: Uso de un Simulador MIPS32: PCSpim

Laboratorio 2: Uso de un Simulador MIPS32: PCSpim Laboratorio 2: Uso de un Simulador MIPS32: PCSpim Objetivos. Dominar el uso de un simulador assembler y herramientas para la depuración de programas. Analizar la creación de frames en la invocación de

Más detalles

Pr. Dr. Xavier Bonnaire

Pr. Dr. Xavier Bonnaire Pr. Dr. Xavier Bonnaire Slide 1 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María Temario Introducción Estructura Básica de un Computador Lenguaje de Máquina Básico Instrucciones para

Más detalles

Arquitectura del MIPS: Introducción

Arquitectura del MIPS: Introducción Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

Fundamentos y Arquitectura de Computadores (ITTSE UV)

Fundamentos y Arquitectura de Computadores (ITTSE UV) REGISTROS DEL MIPS32 Nombre Código del Uso común registro $zero 0 El contenido de este registro siempre es nulo $v0 - $v1 2 3 Valores de retorno para las llamadas al sistema $a0 - $a3 4 7 Argumentos para

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique

Más detalles

Estructuras de Computadores I Tarea 02 02/99

Estructuras de Computadores I Tarea 02 02/99 Estructuras de Computadores I Tarea 02 02/99 1. Dada la secuencia de bits: 0011 0100 0101 0101 0100 0011 0100 0010 Qué representa, asumiendo que es: a. Un número entero en complemento dos. b. Fracción

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras 4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice

Más detalles

Abstracción de bifurcaciones y saltos.

Abstracción de bifurcaciones y saltos. Capítulo 5. 1 Abstracción de bifurcaciones y saltos. 5.1. Operaciones lógicas. En el lenguaje C: Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. Si el resultado de una operación

Más detalles

Una expresión es falsa si su valor es cero; verdadera si es diferente de cero.

Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. 5. Abstracción de bifurcaciones y saltos. 5.1. Operaciones lógicas. En el lenguaje C: Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. Si el resultado de una operación lógica

Más detalles

Fundamentos y Arquitectura de Computadores (ITTSE UV)

Fundamentos y Arquitectura de Computadores (ITTSE UV) Fundamentos y Arquitectura de Computadores (ITTSE UV) F. Micó REGISTROS DEL MIPS R2000/R3000 Nombre Código del Uso registro $zero 0 Valor constante 0 $v0 - $v1 2 3 Valores de retorno para las llamadas

Más detalles

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017 Arquitectura de Computadoras I Ingeniería de Sistemas Curso 217 Práctica de Laboratorio: Microprocesador MIPS Segmentado El objetivo de esta práctica es implementar el microprocesador MIPS (visto en clase

Más detalles

SPIM: Un simulador del repertorio de instrucciones

SPIM: Un simulador del repertorio de instrucciones SPIM: Un simulador del repertorio de instrucciones Por M. C. Felipe Santiago E. Para el curso: Arquitectura de Computadoras 1. Introducción SPIM es un simulador creado por el Dr. James Larus, graduado

Más detalles

Modelo de von Neumann

Modelo de von Neumann Conceptos básicos Modelo de von Neumann También conocida como arquitectura de Princeton. Propuesta por John von Neumann en 1945. Partes de una computadora digital: Unidad de procesamiento (CPU unidad central

Más detalles

Registros del MIPS y usos. Servicios del sistema

Registros del MIPS y usos. Servicios del sistema Registros del MIPS y usos Nombre del registro Número Uso zero 0 Constante de valor 0 at 1 Reservada para ensamblador v0 2 Evaluación de expresiones y resultado de funciones v1 3 Evaluación de expresiones

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

El nivel ISA (II)! Conjunto de Instrucciones

El nivel ISA (II)! Conjunto de Instrucciones El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina

Más detalles

REPERTORIO DE INSTRUCCIONES MIPS

REPERTORIO DE INSTRUCCIONES MIPS Departamento de Informática Escuela Politécnica Universidad de Extremadura REPERTORIO DE INSTRUCCIONES MIPS Prácticas de la Asignatura ESTRUCTURA DE COMPUTADORES 2º Ingeniería Informática 2º Ingeniería

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores 9.6. Números en Punto Flotante. Se denominan así a las representaciones internas al procesador que modelan a los números reales. En forma externa, se representan como números con coma ( 3.1415926 con punto),

Más detalles

Tema 3 (I) Fundamentos de la programación en ensamblador

Tema 3 (I) Fundamentos de la programación en ensamblador Tema 3 (I) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Fundamentos básicos de la

Más detalles

Tema 6: Descripción del ISA del MIPS

Tema 6: Descripción del ISA del MIPS Arquitectura de Computadores Tema 6: Descripción del ISA del MIPS Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom Arquitectura de Computadoras UNT D. Cohen 1 2014 Temario

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores 6.5. Comunicación de las funciones con su entorno. Hasta el momento se ha conceptualizado una subrutina como un segmento de código que ocurre a menudo en un programa. La idea puede flexibilizarse y aumentar

Más detalles

3.1. Definición de datos enteros como variables globales.

3.1. Definición de datos enteros como variables globales. 3. Variables. 3.. Definición de datos enteros como variables globales. El siguiente segmento ilustra una serie de definiciones de enteros inicializados. En C, se denomina definición de datos, la instancia

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores 4.- Programación en Ensamblador Parte IV Contenido Subrutinas. Llamadas al sistema. Página 2 Subrutinas Módulos de programa que pueden reutilizarse en distintos puntos del programa.

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) Objetivos Plantear y modificar una ruta de datos para un repertorio de instrucciones

Más detalles

Programación en ensamblador Ejercicios propuestos

Programación en ensamblador Ejercicios propuestos Programación en ensamblador Ejercicios propuestos Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique un fragmento de

Más detalles

3.1. Definición de datos enteros como variables globales.

3.1. Definición de datos enteros como variables globales. Capítulo 3. Variables. 3.. Definición de datos enteros como variables globales. El siguiente segmento ilustra una serie de definiciones de enteros inicializados. En C, se denomina definición de datos,

Más detalles

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

Ejercicio 1. Considere el siguiente fragmento en ensamblador: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 1:30 horas. NO se podrán

Más detalles

Tema 3 (III) Fundamentos de la programación en ensamblador

Tema 3 (III) Fundamentos de la programación en ensamblador Tema 3 (III) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos } Fundamentos básicos de la

Más detalles

void clear1( int array[], int size ) /* Versión con arreglos */ { int i; for( i = 0; i < size; i++) array[i] = 0; }

void clear1( int array[], int size ) /* Versión con arreglos */ { int i; for( i = 0; i < size; i++) array[i] = 0; } 2.10 Apuntadores contra arreglos. El manejo de apuntadores es uno de los aspectos más interesantes en los lenguajes de programación; los apuntadores y los arreglos comparten algunas características, sin

Más detalles

Arquitectura del procesador MIPS R2000

Arquitectura del procesador MIPS R2000 Arquitectura del procesador MIPS R2000 Aula Virtual IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I Índice

Más detalles

Arquitectura de Computadoras. Simulador WINMIPS64

Arquitectura de Computadoras. Simulador WINMIPS64 Arquitectura de Computadoras Simulador WINMIPS64 Procesador MIPS 32 registros de uso general: r0.. r31 (64 bits) excepto r0 siempre igual a 0 32 registros de punto flotante: f0.. f31 (64 bits) 2 30 palabras

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

Programando sobre MIPS64

Programando sobre MIPS64 Programando sobre MIPS64 Escribir un programa en cualquier lenguaje involucra estructurar el código de forma que éste sea modular, extensible, simplede mantener y reutilizable. En assembly, eso involucra

Más detalles

El procesador. Diseño del control

El procesador. Diseño del control El procesador Diseño del control Datapath MIPS simple Universidad de Sonora Arquitectura de Computadoras 2 MIPS simple El datapath anterior cubre instrucciones: Aritméticas-lógicas: add, sub, and, or y

Más detalles

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de

Más detalles

Laboratorio 1 y 2: Programación en C, Assembler MIPS, y uso de Simulador MIPS32: PCSpim

Laboratorio 1 y 2: Programación en C, Assembler MIPS, y uso de Simulador MIPS32: PCSpim Laboratorio 1 y 2: Programación en C, Assembler MIPS, y uso de Simulador MIPS32: PCSpim Objetivos. Estudiar algunos aspectos básicos de la programación en lenguaje C, y ambientes de programación integrados

Más detalles

El lenguaje ensamblador depende directamente de la arquitectura del computador. Por tanto cada arquitectura tiene su propio lenguaje ensamblador.

El lenguaje ensamblador depende directamente de la arquitectura del computador. Por tanto cada arquitectura tiene su propio lenguaje ensamblador. Estructura y Tecnología de Computadores (ITIG) Ángel Serrano Sánchez de León Luis Rincón Córcoles Programa 1. Introducción. 2. Registros. 3. Operaciones aritméticas básicas. 4. Accesos a memoria. Carga

Más detalles

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Organización del Computador 1 CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Estructura de una máquina von Neumann Ciclo de Ejecución 1. 2. 3. 4. 5. 6. UC obtiene la próxima instrucción de

Más detalles

La Unidad Aritmética

La Unidad Aritmética Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 4 5 En este capítulo profundizaremos la aritmética computacional

Más detalles

MIPS: Modelo de programación. (I Parte)

MIPS: Modelo de programación. (I Parte) MIPS: Modelo de programación (I Parte) MIPS: Microprocessor without Interlocked Pipeline Stages Trabajaremos como MIPS Son similares a las desarrolladas en los años 80 Cerca de 100 millones de procesadores

Más detalles

UNIDAD 2: Instrucciones: el lenguaje de las computadoras.

UNIDAD 2: Instrucciones: el lenguaje de las computadoras. UNIDAD 2: Instrucciones: el lenguaje de las computadoras. 2.1 Introducción Para comandar una computadora se le debe hablar en su lenguaje. Las palabras del lenguaje de una máquina son llamadas instrucciones,

Más detalles

8. Diseño de la codificación binaria del repertorio de Instrucciones.

8. Diseño de la codificación binaria del repertorio de Instrucciones. 8. Diseño de la codificación binaria del repertorio de Instrucciones. Se desea elegir los códigos binarios de las instrucciones. Esta parte, en forma indirecta especifica lo que debe realizar un programa

Más detalles

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura del CPU. Organización del Computador 1 Verano 2016 Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales

Más detalles

Organización del Computador I Verano. MIPS (1 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

Organización del Computador I Verano. MIPS (1 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Lenguajes para la máquina Las computadoras son circuitos electrónicos,

Más detalles

El procesador. Datapath para las instrucciones de brinco

El procesador. Datapath para las instrucciones de brinco El procesador Datapath para las instrucciones de brinco Instrucciones de brinco Dos tipos de instrucciones de brincos: 1. Brinco condicional. beq $t0, $t1, Etiqueta ; if t0 == t1 goto Etiqueta 2. Brinco

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Compiladores e Intérpretes Generación de Código Máquina e Intérpretes

Compiladores e Intérpretes Generación de Código Máquina e Intérpretes 1 Compiladores e Intérpretes Generación de Código Máquina e Intérpretes Sebastian Gottifredi 2017 Repaso 2 Repaso Para entender y controlar la estructura de un programa fuente hay que analizar si sigue

Más detalles

(3) Unidad 3. Interfaz del ensamblador con el lenguaje C SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

(3) Unidad 3. Interfaz del ensamblador con el lenguaje C SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM Unidad 3 Interfaz del ensamblador con el lenguaje C SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática EPS - UAM Índice 3. Interfaz del ensamblador con el lenguaje C. 3.1. Características

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal: a) 010011 b) 100111 Ejercicio 3 Dada la siguiente expresión

Más detalles

INTRUCCIONES: LENGUAJE MAQUINA

INTRUCCIONES: LENGUAJE MAQUINA INTRUCCIONES: LENGUAJE MAQUINA 1.- INTRODUCCION Conceptos importantes Instrucción: Orden al hardware del Computador Repertorio de Instrucciones Lenguaje Máquina (ML) Lenguaje Ensamblador (AL) Lenguaje

Más detalles

Introducción al lenguaje ensamblador DLX: instrucciones de enteros.

Introducción al lenguaje ensamblador DLX: instrucciones de enteros. PRÁCTICA 0.a Introducción al lenguaje ensamblador DLX: instrucciones de enteros. OBJETIVO El objetivo de esta práctica es la familiarización con el lenguaje ensamblador DLX, analizando la ejecución de

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador Ejercicios del tema 4. El procesador Estructura del procesador elemental WepSIM Address Bus Data Bus Control Bus C0 Ta Internal Bus RA RB RC LC MAR T9 Memory MRdy BE ADDR DATA R W A31-A0 BE3-BE0 D31-D0

Más detalles

Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento

Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento Laboratorio IG09 1 IngenieríaTécnica en Informática de Gestión. Curso 2001-2002 LABORATORIO DE ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento

Más detalles

Seguimiento. Organización del Computador I. Gustavo Cairo Carlos A. Di Pietro Carolina Lang. 1 er Cuatrimestre de 2016

Seguimiento. Organización del Computador I. Gustavo Cairo Carlos A. Di Pietro Carolina Lang. 1 er Cuatrimestre de 2016 La Máquina ORGA1: Arquitectura y Seguimiento Organización del Computador I Gustavo Cairo Carlos A. Di Pietro Carolina Lang Departamento de Computación - FCEyN UBA 1 er Cuatrimestre de 2016 Outline Arquitectura

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Segmentación del Path de Datos

Segmentación del Path de Datos Maestría en Electrónica Arquitectura de Computadoras Unidad 5 Segmentación del Path de Datos M. C. Felipe Santiago Espinosa Abril/2018 Introduction CPU performance factors Instruction count Determined

Más detalles

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel. Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)

Más detalles

Fundamentos de arquitectura de computadores relacionados con SO

Fundamentos de arquitectura de computadores relacionados con SO Fundamentos de arquitectura de computadores relacionados con SO Ingeniería del Software EUITI Índice Estructura del computador Modelo de programación Registros del procesador Ejecución de instrucciones

Más detalles

Organización de Computadoras. Principios de Conjuntos de Intrucciones

Organización de Computadoras. Principios de Conjuntos de Intrucciones Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load

Más detalles

Exploiting... Stack Based Buffer Overflow

Exploiting... Stack Based Buffer Overflow Exploiting... Stack Based Buffer Overflow FAMAF UNC November 10, 2015 Se puede ganar? int main () { int cookie ; char buf [80]; } gets ( buf ); // Lee hasta el primer... if ( cookie == 0 x41424344 ) printf

Más detalles

El repertorio de instrucciones

El repertorio de instrucciones Capítulo 2 El repertorio de instrucciones 2.1. Introducción El funcionamiento de la CPU está determinado por las instrucciones que ejecuta. Estas instrucciones se denominan instrucciones máquina o instrucciones

Más detalles

Documentación del simulador SPIM.

Documentación del simulador SPIM. Universidad de León Departamento de Ingeniería Eléctrica y de Sistemas y Automática (C) Prof. José M. Foces, 1998-2006. diejfm@unileon.es Documentación del simulador SPIM. Versión para Windows. Adaptada

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Arquitectura de Computadores Certamen I

Arquitectura de Computadores Certamen I Universidad de Concepción Facultad de Ingeniería Dpto. Ingeniería Eléctrica Arquitectura de Computadores - 543426 Certamen I 1. Performance [2 ptos.] 30 de Abril del 2003 La Tabla 1 muestra la cantidad

Más detalles

Direccionamiento y Estructuras de Datos.

Direccionamiento y Estructuras de Datos. Capítulo 7. 1 Direccionamiento y Estructuras de Datos. Una vez conocidos los mecanismos de direccionamiento de un procesador es útil visualizar cómo se pueden emplear para manipular arreglos y estructuras.

Más detalles

Organización del Computador I Verano. Control Multiciclo. Basado en el capítulo 5 del libro de Patterson y Hennessy

Organización del Computador I Verano. Control Multiciclo. Basado en el capítulo 5 del libro de Patterson y Hennessy Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Resumen Step name Instruction fetch Instruction decode/register

Más detalles

Implementación de instrucciones para el procesador MIPS de ciclo único.

Implementación de instrucciones para el procesador MIPS de ciclo único. Implementación de instrucciones para el procesador MIPS de ciclo único. 1. Introducción. El MIPS (Microprocessor without Interlock Pipeline Stages) es un conocido tipo de procesador de arquitectura RISC

Más detalles

Arquitectura de Computadores. Miguel Figueroa Oficina Arquitectura de conjunto de instrucciones (ISA)

Arquitectura de Computadores. Miguel Figueroa Oficina Arquitectura de conjunto de instrucciones (ISA) 543.426 Arquitectura de Computadores Arquitectura de conjunto de instrucciones (ISA) Miguel Figueroa Oficina 235 Email: miguel.figueroa@udec.cl 1 Arquitectura de conjunto de instrucciones Instruction Set

Más detalles

ARQUITECTURA DE COMPUTADORES. Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento.

ARQUITECTURA DE COMPUTADORES. Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento. Universidad Rey Juan Carlos ARQUITECTURA DE COMPUTADORES Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento. Licesio J. Rodríguez-Aragón Programa 1. Introducción Lenguajes de Programación:

Más detalles

Cap.2. Kernel Sistemas Operativos - Viña del Mar.

Cap.2. Kernel Sistemas Operativos - Viña del Mar. Cap.2. Kernel Sistemas Operativos - Viña del Mar. Maximiliano Osorio mosorio@inf.utfsm.cl Universidad Técnica Federico Santa Maria 19 de agosto de 2017 1 / 44 Tabla de contenidos 1 Proceso Protección de

Más detalles

8.4. El software en los μprocesadores

8.4. El software en los μprocesadores 8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado

Más detalles

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES PRACTICA 7 Repaso del Lenguaje Ensamblador CURSO 2005-2006 Arquitectura de Computadores. Práctica 7: Repaso del lenguaje Ensamblador 1 PRÁCTICA 7 ASPECTO TRATADO:

Más detalles

Programación en ensamblador Ejercicios resueltos

Programación en ensamblador Ejercicios resueltos Programación en ensamblador Ejercicios resueltos Ejercicio 1. Dado el siguiente fragmento de programa en ensamblador..globl main main:... li $a0, 5 jal funcion move $a0, $v0 li $v0, 1 li $v0, 10 funcion:

Más detalles

El Conjunto de Instrucciones de la Arquitectura Lagarto I

El Conjunto de Instrucciones de la Arquitectura Lagarto I Sistema de numeración maya (base 20), se considera el primer sistema numérico que uso el cero. El Conjunto de Instrucciones de la Arquitectura Lagarto I i Resumen El conjunto de instrucciones de la arquitectura

Más detalles