Generación de un ejecutable
|
|
- Alejandra Sáez Salinas
- hace 7 años
- Vistas:
Transcripción
1 ASSEMBLER
2 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 Assembler Archivo Objeto Linker Archivo Ejecutable Archivo Fuente Assembler Archivo Objeto Library
3 Generación de un ejecutable Archivo Fuente Assembler Archivo Objeto Archivo Fuente Assembler Archivo Objeto Linker Archivo Ejecutable Archivo Fuente Assembler Archivo Objeto Library Contiene instrucciones de máquina, datos y enlaces a bibliotecas Puede tener referencias a funciones o variables de otros archivos
4 Generación de un ejecutable #include<stdio.h> int main(int argc, char* argv[]){ } int i; int sum=0; for(i=0;i<=100;i++) sum += sum+1; printf( La suma de 0 a 100 es %d\n, sum);
5 Generación de un ejecutable.text.align 2.globl main main: subu $sp,$sp,32 sw $ra,20($sp) sd $a0,32($sp) sw $0,24($sp) sw $0,28($sp) loop: lw $t6,28($sp) mul $t7,$t6,$t6 lw $t8,24($sp) addu $t9,$t8,$t7 sw $t9,24($sp) addu $t0,$t6,1 sw $t0,28($sp) ble $t0,100, loop la $a0, str lw $al, 24($sp) jal printf move $v0, $0 lw $ra,20($sp) addu $sp,$sp,32 j $ra str:.data.align 0.asciiz La suma de 0 a 100 es %d\n Notar que sólo el label main puede ser referenciado desde otro archivo
6 Facilidades.asciiz La suma de 0 a 100 es %d\n equivale a:.byte byte byte byte
7 (Des)Ensamblar Código Assembler addi $t1, $t2, 0x1000 Ensamblar Desensamblar Código Máquina
8 Memoria Unidad Aritmética y Lógica (ALU). Unidad Aritmética entera, operaciones de multiplicación y división. CPU Registros FPU Registros Alu Mul Div Hi Lo U. Aritmética Traps Manejo de Memoria Unidad punto flotante (FPU). Coprocesador dedicado al manejo de memoria caché y virtual.
9
10 Procesador MIPS
11
12
13 Procesador MIPS Nombre Registro Número Uso $zero $0 Constante 0 $at $1 Reservado para el assembler $v0 $2 Para evaluación de expresiones y $v1 $3 retorno de resultados de una función $a0 $4 Argumento 1 $a1 $5 Argumento 2 $a2 $6 Argumento 3 $a3 $7 Argumento 4 $t0 $8 Temporal (no se preserva a través de los llamados) $t1 $9 Temporal (no se preserva a través de los llamados) $t2 $10 Temporal (no se preserva a través de los llamados) $t3 $11 Temporal (no se preserva a través de los llamados) $t4 $12 Temporal (no se preserva a través de los llamados) $t5 $13 Temporal (no se preserva a través de los llamados) $t6 $14 Temporal (no se preserva a través de los llamados) $t7 $15 Temporal (no se preserva a través de los llamados)
14 Procesador MIPS Nombre Registro Número Uso $s0 $16 Temporal que debe preservarse entre llamados a funciones $s1 $17 Temporal que debe preservarse entre llamados a funciones $s2 $18 Temporal que debe preservarse entre llamados a funciones $s3 $19 Temporal que debe preservarse entre llamados a funciones $s4 $20 Temporal que debe preservarse entre llamados a funciones $s5 $21 Temporal que debe preservarse entre llamados a funciones $s6 $22 Temporal que debe preservarse entre llamados a funciones $s7 $23 Temporal que debe preservarse entre llamados a funciones $t8 $24 Temporal (no se preserva a través de los llamados) $t9 $25 Temporal (no se preserva a través de los llamados) $k0 $26 Reservado para el núcleo del Sist. Operativo $k1 $27 Reservado para el núcleo del Sist. Operativo $gp $28 Puntero al área global de datos $sp $29 Puntero al tope de la pila. Stack pointer $fp $30 Puntero a zona de variables en la pila. Frame pointer $ra $31 Dirección de retorno (usado en invocaciones a funciones)
15 Ciclo de ejecución Acceso a Memoria Tipo y tamaño de la Instrucción (estructura) Acceso a Memoria o a Registros Acceso a Memoria o a Registros Saltos condicionales, bifurcaciones, subrutinas...
16 Formato de Instrucciones Formato de instrucciones MIPS R I J Op (6) Rs (5) Rt (5) Rd (5) Shamnt (5) Funct (6) Op (6) Address (26) Op (6) Rs (5) Rt (5) Inmediate (16)
17 Formato de Instrucciones Formato de instrucciones MIPS R I J Op (6) Rs (5) Rt (5) Rd (5) Shamnt (5) Funct (6) Op (6) Address (26) Op (6) Rs (5) Rt (5) Inmediate (16)
18 Formato de Instrucciones Formato de instrucciones MIPS R I J Op (6) Rs (5) Rt (5) Rd (5) Shamnt (5) Funct (6) Op (6) Address (26) Op (6) Rs (5) Rt (5) Inmediate (16)
19 Formato de Instrucciones Formato de instrucciones MIPS R I J Op (6) Rs (5) Rt (5) Rd (5) Shamnt (5) Funct (6) Op (6) Address (26) Op (6) Rs (5) Rt (5) Inmediate (16)
20 Procesador MIPS Repertorio de Instrucciones Intrucción Ejemplo Significado add add $t1, $t2, $t3 $t1=$t2+$t3 add unsigned addu $t1, $t2, $t3 $t1=$t2+$t3 subtract sub $t1, $t2, $t3 $t1=$t2-$t3 Subtract unsigned subu $t1, $t2, $t3 $t1=$t2-$t3 and and $t1, $t2, $t3 $t1=$t2 & $t3 or or $t1, $t2, $t3 $t1=$t2 $t3 xor xor $t1, $t2, $t3 $t1=$t2 $t3 nor nor $t1, $t2, $t3 $t1=~($t2 $t3) set on less than slt $t1,$t2,$t3 if($t2<$t3) $t1=1; else $t0=0;
21 Repertorio de Instrucciones Intrucción Ejemplo Significado shift left logical sll $t1, $t2, K $t1 = $t2 << K shift left arithm. sla $t1, $t2, K $t1 = $t2 << K shift left logical variable sllv $t1, $t2, $t3 $t1 = $t2 << $t3
22 Repertorio de Instrucciones Intrucción Ejemplo Significado add inmediate addi $t1, $t2, K $t1 = $t2 + K add inmediate unsigned addiu $t1, $t2, K $t1 = $t2 + K and inmediate andi $t1, $t2, K $t1 = $t2 & $t3 or inmediate ori $t1, $t2, K $t1 = $t2 K xor inmediate xori $t1, $t2, K $t1 = $t2 K set less than inmediate slti $t1, $t2, K if($t2<k) $t1=1; else $t1=0;
23 Repertorio de Instrucciones Intrucción Ejemplo Significado load byte lb $t1, K($t2) $t1=m[$t2+k] load byte unsigned lbu $t1, K($t2) $t1=m[$t2+k] load halfword lh $t1, K($t2) $t1=m[$t2+k] load halfword unsigned lhu $t1, K($t2) $t1=m[$t2+k] load word lw $t1, K($t2) $t1=m[$t2+k] Store byte sb $t1, K($t2) M[$t2+K]=$t1 Store halfword sh $t1, K($t2) M[$t2+K]=$t1 Store word sw $t1, K($t2) M[$t2+K]=$t1
24 Repertorio de Instrucciones Intrucción Ejemplo Significado multiply mult $t2, $t3 Hi, Lo = $t2*$t3 multiply unsigned multu $t2, $t3 Hi, Lo = $t2*$t3 divide div $t2, $t3 divide unsigned divu $t2, $t3 Lo = [$t2 / $t3] Hi = $t2 % $t3 Lo = [$t2 / $t3] Hi = $t2 % $t3 Intrucción Ejemplo Significado Move from Hi mfhi $t1 $t1 = Hi Move from Lo mflo $t1 $t1 = Lo Move to Hi mthi $t1 Hi = $t1 Move to Lo mtlo $t1 Lo = $t1
25 Repertorio de Instrucciones Intrucción Ejemplo Significado branch on equal branch on not equal Comparaciones con 0 beq $t1, $t2, K bne $t1, $t2, K bgtz $t1, offset bltz $t1, offset bgez $t1, offset bltzal $t1, offset bgezal $t1, offset if($t1==$t2) PC=PC+4+K 4; if($t1!=$t2) PC=PC+4+K 4; if($t1>0) PC=PC+4+offset 4; if($t1<0) PC=PC+4+offset 4; if($t1>=0) PC=PC+4+offset 4; if($t1<0){ $ra = PC +4; PC=PC+4+offset 4; } if($t1>=0){ $ra = PC +4; PC=PC+4+offset 4; }
26 Repertorio de Instrucciones Intrucción Ejemplo Significado Jump j label goto label Jump and link jal label $ra= PC+4; goto label; Jump register jr $t1 PC=$t1 Jump and link register jalr $t1 $ra= PC+4; PC=$t1;
27 SEGMENTO ESTÁTICO DE DATOS
28 Segmento Estático de Datos: Directivas Assembler 0x
29 Manejo de Números de 4[Bytes] 0x Op (6) Rs (5) Rt (5) Inmediate (16)
30 Segmento Estático de Datos: Directivas Assembler 0x lui $t1,0x6463 ori $t1, $t1, 0x6261
31 Segmento Estático de Datos: Directivas Assembler 0x lui $t1,0x6463 ori $t1, $t1, 0x6261 Macro li $t1,0x Ver página A-59 del Apéndice A (pdf)
32 Segmento Estático de Datos: Directivas Assembler 0x la $t1,0x lui $t1,0x1234 ori $t1, $t1, 0x0261
33 Segmento Estático de Datos
34 Segmento Estático de Datos: Directivas Assembler
35 Segmento Estático de Datos: Directivas Assembler.data 0x #variables estaticas v1:.word 0x v2:.word 0x v3:.word 0x v4:.word 0x v5:.word 0x v6:.word 0x v7:.half 0x1234 v8:.byte 0xFF.align 2 arr:.word 0,1,2,3,4,5 string:.asciiz "abcdef" Data Segment [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x00ff1234 [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x
36 Segmento Estático de Datos: Directivas Assembler Notación del segmento de datos Data Segment [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x00ff1234 [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x x x x [0x ] 0x x x00ff1234 0x [0x ] 0x x x x [0x ] 0x x x x
37 Segmento Estático de Datos: Directivas Assembler 0x y 0x Data Segment [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x00ff1234 [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x
38 Segmento Estático de Datos: Directivas Assembler la $t1, v1 lw $t2, 8($t1) lw $t3, 16($t1) Data Segment [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x00ff1234 [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x Otra(s) opción(es)?
39 Segmento Estático de Datos: Directivas Assembler... v7:.half 0x1234 v8:.byte 0xFF... Data Segment [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x00ff1234 [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x
40 Segmento Estático de Datos: Directivas Assembler... v7:.half 0x1234 v8:.byte 0xFF... la $t4, v7 lh $t5, 0($t4) lb $t6, 2($t4) Data Segment [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x00ff1234 [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x C] 0x [0x ] 0x [0x ] 0x [0x ] 0x [0x ] 0x Otra(s) opción(es)?
41 Segmento Estático de Datos: Directivas Assembler Notación Significado t8 = &var; la $t8, var *p contenido &p dirección *t8 = t7; sw $t7, 0($t8) Memoria &var var contenido *t8
42 Invocación de funciones: Variables Globales int i=10, j=5, k=0; // var. Globales void f1(void){ k = i + j; } main(void){... f1(); //invoca función f1 sin argumentos... }
43 Invocación de funciones: Variables Globales.data i:.word 10 j:.word 5 k:.word 0.text.globl main main:... jal f1 f1: la $t0, i lw $s1, 0($t0) # s1 = i lw $s2, 4($t0) # s2 = j add $t1, $s1, $s2 # t1 = i + j sw $t1, 8($t0) # k = t1 jr $ra
44 Invocación de funciones: Por Valor int i=10, j=20, k=30; int f2(int a0, int a1) { return (a0+a1); } main(){... k = f2(i, j);... }
45 Invocación de funciones: Por Valor.data i:.word 1 j:.word 2 k:.word 3.text.globl main:... la $t0, i main lw $a0,0($t0) lw $a1,4($t0) jal f2 sw $v0,8($t0)... f2: add $v0, $a0, $a1 jr $ra # a0 = i # a1 = j # invocación de función # k = v0
46 Invocación de funciones: Por Referencia int i=1, j=2, k=3; int f3(int *a0, int *a1) return (*a0+*a1); } main(){... k= f3(&i,&j);... }
47 .data i:.word 1 j:.word 2 k:.word 3.text.globl main main:... la $a0,i la $a1,j jal f3 sw $v0, 8($a0)... j main Procesador MIPS Invocación de funciones: Por Referencia f3: lw $t1,0($a0) lw $t2,0($a1) add $v0,$t1,$t2 jr ra
48 Stack
49 Stack
50 Procesador MIPS Stack : Push # PUSH the item in $t0: subu $sp,$sp,4 #point to the place #for the new item, sw $t0,($sp) #store the contents of $t0 #as the new top
51 Procesador MIPS Stack : Push # POP the item into $t0: lw $t0,($sp) #Copy top the item to $t0. addu $sp,$sp,4 #Point to the item beneath #the old top.
52 Stack : Push.data a:.word 2 b:.word 3.text main: lw lw mul $t0,a $t1,bb $t0,$t0,$t1 subu sw... $sp,$sp, $t0,
53 Stack : Push.data a:.word 2 b:.word 3.text main: lw lw mul $t0,a $t1,bb $t0,$t0,$t1 subu sw... $sp,$sp,4 $t0,0($sp)
54 Stack : Push.data a:.word 2 b:.word 3.globl main main: lw $t0,a # get a lw $t1,bb # get b mul $t0,$t0,$t1 # a*b subu $sp,$sp,4 # push a*b sw $t0,($sp) lw $t0,a # get a li $t1,-12 # mul $t0,$t0,$t1 # -12a subu $sp,$sp,4 # push -12a sw $t0,($sp) li $t1,-7 # init sum to -7 lw $t0,($sp) # pop 18b addu $sp,$sp,4 addu $t1,$t1,$t0 # 18b-7 lw $t0,($sp) # pop -12a addu $sp,$sp,4 addu $t1,$t1,$t0 # -12a+18b-7 lw $t0,($sp) # pop ab addu $sp,$sp,4 addu $t1,$t1,$t0 # ab-12a+18b-7 done: li $v0,1 # print sum move $a0,$t1 syscall li $v0,10 # exit syscall lw $t0,b # get b li $t1,18 # mul $t0,$t0,$t1 # 18b subu $sp,$sp,4 # push 18b sw $t0,($sp)
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 detallesOrganizació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 detallesOrganizació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 detallesFunciones. 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 detalles8. 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 detallesFundamentos 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 detallesREPERTORIO 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 detallesArquitectura 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 detallesPlataformas 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 detallesTema 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 detallesCAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE INSTRUCCIONES MIPS R-4000
Antes de comenzar a explicar como funciona el programa, vamos a enumerar las instrucciones que están implementadas en el simulador. CAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE ES MIPS R-4000 ES IMPLEMENTADAS
Más detallesProcesador 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 detallesEl 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 detallesMemoria. Traps y Manejo de Memoria BadVAddr EPC. Status. Figura 4.1. Diagrama funcional.
Capítulo 4. 1 Organización MIPS. Luego de la introducción informal del capítulo anterior, se describirán con detalle las principales características del procesador MIPS, desde un punto de vista del programador
Más detallesGrupo 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 detallesELO311 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 detallesEl 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 detallesUNIVERSIDAD 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 detallesEstructura 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 detallesArquitecturas 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 detallesArquitectura 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 detallesEstructuras 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 detallesTema 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: - Los
Más detallesARQUITECTURA 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 detallesCOMPUTADORES SEGMENTADOS (DLX)
DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica
Más detallesArquitectura 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 detallesEjercicios 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 detallesImplementació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 detallesArquitectura 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 detalles2. ARQUITECTURA BÁSICA DE MIPS 64
2. ARQUITECTURA BÁSICA DE MIPS 64 1 ARQUITECTURA BÁSICA DE MIPS 64 1. Características RISC de MIPS64 2. Registros y memoria 3. Instrucciones enteras 4. Instrucciones de coma flotante 5. El ensamblador
Más detallesRegistros 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 detallesISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones
ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones Instruction Set Architecture (ISA) Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad
Más detallesArquitectura 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 detallesEstructura 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 detallesvoid 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 detallesSesión 11 Implementación de sentencias condicionales
INGENIERÍATÉCNICA EN INFORMÁTICA DE GESTIÓN. CURSO 2001-2002 LABORATORIO DE ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Sesión 11 Implementación de sentencias condicionales INSTRUCCIONES DE COMPARACIÓN Y SALTOS
Más detallesArquitectura 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 detallesESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES
Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa 1. Introducción a la arquitectura MIPS. 2. Características principales de
Más detallesDireccionamiento 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 detallesPráctica 2 - Assembler MIPS
Práctica 2 - Assembler MIPS Organización del Computador 1 Verano 2014 Se deberán resolver al menos los ejercicios: 3, 6, 7, 9, 17, 22, 25 de la presente guía. El resto de los ejercicios son opcionales.
Más detallesLaboratorio 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 detallesEstructuras de Computadores I Tarea 03 02/99. Manejo de Punteros. Compilación de funciones (manejo de frames).
Estructuras de Computadores I Tarea 03 02/99 Manejo de Punteros. Compilación de funciones (manejo de frames). 1. Se listan algunas funciones para manipular strings. Estas usan intensivamente punteros.
Más detallesAritmética del computador
Aritmética del computador Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso. Evolución y caracterización
Más detallesProgramació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 detallesIntroducció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 detallesEl 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 detallesEjercicios 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 detallesUNIVERSIDAD 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 Para la realización del presente examen se dispondrá de 1 hora y media. NO se podrán
Más detallesEstructura de Computadores
Estructura de Computadores Tema 3. Programación en ensamblador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Fundamentos
Más detallesOrganizació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 detallesEstructura de Computadores. Capítulo 3b: Programación en
Estructura de Computadores Capítulo 3b: Programación en ensamblador del MIPS. José Daniel Muñoz Frías Universidad Pontificia Comillas. ETSI ICAI. Departamento de Electrónica y Automática Estructura de
Más detallesOrganizació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 detallesArquitectura de Computadores. Adecuación al diseño de unidades segmentadas (pipelining).
La arquitectura. Introducción. En este capítulo describiremos la estructura básica de una arquitectura sencilla de carga/almacenamiento denominada (Pronunciado DeLuxe ). La arquitectura del conjunto de
Más detallesProgramando 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 detallesCircuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores
Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores Unidad 3: MIPS ISA Prof. Felipe Cabarcas cabarcas@udea.edu.co
Más detallesRESEÑA DE LENGUAJE C
RESEÑA DE LENGUAJE C VARIABLES La función main. Es el punto de entrada al programa. void main(void) Aquí escribo mi programa Tipos de datos. Char. El char es una variable de 1 byte. Almacena números enteros.
Más detallesGuía Laboratorio Número 1
Guía Laboratorio Número 1 Página 1 de 5 Arquitectura de Computadoras 06/04/2014 Repaso lenguaje ensamblador Escribir códigos en lenguaje ensamblador es bastante sencillo, por lo que no es necesario el
Más detallesUnidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño
Instituto Universitario Politécnico Santiago Mariño Unidad Nº II Capacidad de la unidad central de procesamiento Organización de instrucción de máquina Cada instrucción requiere la información que necesita
Más detallesElectrónica Digital. Computadoras de la Arena al Lenguaje C. Ing. Jose Luis Hamkalo
Electrónica Digital Computadoras de la Arena al Lenguaje C Ing. Jose Luis Hamkalo Construyendo una Computadora Paso 1: La CPU EL camino de datos Registros Register file ALU Bus Señales disponibles El ciclo
Más detallesFUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.
FUNDAMENTOS DE COMPUTADORES 18 de junio de 2014. Examen parcial del 2º cuatrimestre. Nombre DNI Apellidos Grupo Ejercicio 1 (2.5 puntos) Para el computador MIPS estudiado en clase, responder a las siguientes
Más detallesTema 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 detallesUNIVERSIDAD DE CORDOBA ESTRUCTURA DE COMPUTADORAS UNIDAD III
ARITMETICA PARA COMPUTADORAS 1.- INTRODUCCION Objetivo Estudio de uno de los Componentes Clásicos de una Computadora Unidad Aritmético Lógica (ALU) Partes a estudiar Representación de los números negativos
Más detallesDISEÑO DE UN REPERTORIO DE INSTRUCCIONES
Maestría en Electrónica Arquitectura de Computadoras Unidad 3 DISEÑO DE UN REPERTORIO DE INSTRUCCIONES M. C. Felipe Santiago Espinosa Marzo/2017 3.1. Clasificación de arquitecturas de los procesadores
Más detallesEstructura de Computadores
Estructura de Computadores Perpectiva Histórica Pasado y Presente Avances Tecnológicos Primer computador Electrónico University of Pennsylvania ENIAC (Electronic Numerical Integrator and Calculator, 18.000
Más detallesSección de procesamiento: El camino de datos
Sección de procesamiento: El camino de datos Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución
Más detallesUso avanzado de punteros
Uso avanzado de punteros Mario Medina C. mariomedina@udec.cl Punteros Contienen direcciones de memoria Punteros a tipos de datos simples int, char, float, double Punteros a estructuras Punteros a vectores
Más detallesLa Unidad de Control y el Camino de Datos
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 Contenido Veremos el diseño completo de un subconjunto
Más detalles5 Lenguaje de Máquina
5 Lenguaje de Máquina Ya visto el detalle de la organización de la CPU y el nivel de microprogramación, en este punto veremos las consideraciones del nivel de lenguaje de máquina. Este conjunto de instrucciones
Más detallesArquitectura de Computadores MIPS64-1
La descripción de esta arquitectura la vamos a organizar en tres apartados. Comenzaremos presentando sus características generales, para luego ir viendo en detalle los tipos de datos que maneja, así como
Más detallesSistema 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 detallesIntel Departamento de Arquitectura 1. Facultad de Ingeniería Universidad de la República. Arquitectura de Computadoras, 2016
Intel 8086 Departamento de Arquitectura 1 1 Instituto de Computación Facultad de Ingeniería Universidad de la República Arquitectura de Computadoras, 2016 Temas 1 2 3 Registros Segmentación Stack 4 Set
Más detallesEstructura de Computadores
Estructura de Computadores Tema 4. El procesador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Elementos de un
Más detallesMIPS: 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 detallesUNIVERSIDAD 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 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de Ejercicio 1 Los siguientes números se encuentran representados en complemento
Más detalles8.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 detallesARQUITECTURA VON NEUMANN
ARQUITECTURA VON NEUMANN Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de
Más detallesOrganización del Computador I Verano. Aritmética (4 de 5) Basado en el capítulo 4 del libro de Patterson y Hennessy Multiplicaciones y Divisiones
Organización del Computador I Verano Aritmética (4 de 5) Basado en el capítulo 4 del libro de Patterson y Hennessy Multiplicaciones y Divisiones Verano 2014 Profesora Borensztejn MULTIPLICACIONES 1011
Más detallesGUIÓN DE PRÁCTICAS DE ENSAMBLADOR DE MIPS
Departamento de Informática Escuela Politécnica Universidad de Extremadura GUIÓN DE PRÁCTICAS DE ENSAMBLADOR DE MIPS Asignatura ESTRUCTURA DE COMPUTADORES 2º Ingeniería Informática 2º Ingeniería Técnica
Más detallesOperaciones lógicas y repetición
Organización de computadoras Universidad Nacional de Quilmes http:// Repaso Algebra de Boole Memoria principal datos direcciones Unidad Aritmético- Logica (ALU) Unidad de Control de programa (UC) CPU 1
Más detallesArquitectura de Computadores
La descripción de esta arquitectura la vamos a organizar en tres apartados. Comenzaremos presentando sus características generales, para luego ir viendo en detalle los tipos de datos que maneja, así como
Más detallesProcesadores de lenguaje Tema 8 Generación de código y optimización
Procesadores de lenguaje Tema 8 Generación de código y optimización Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Tipos de código objeto Operaciones básicas en la generación
Más detallesEl 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 detallesOrganización de Computadoras. Algunas temas tomados en 2ª evaluación integradora
Organización de Computadoras Algunas temas tomados en 2ª evaluación integradora Temas de Arquitecturas 1- Describa mediante ejemplos los modos de direccionamiento que conozca. 2- Describa los distintos
Más detallesPRÁ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 detallesOrganización n del Computador. CPU (ISA) Conjunto de Instrucciones de la Arquitectura
Organización n del Computador CPU (ISA) Conjunto de Instrucciones de la Arquitectura Estructura (computadora) periféricos Computador Computador Unidad Central de Proceso CPU Sistema de interconexión Memoria
Más detallesARQUITECTURA VON NEUMANN
ARQUITECTURA VO EUMA Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de Entrada
Más detallesESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES
Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: implementación uniciclo Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa. Introducción. 2. Construcción
Más detallesPráctica 3 - Arquitectura del CPU
Práctica 3 - Arquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar
Más detallesTema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras
Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras http://www.herrera.unt.edu.ar/arqcom dcohen@herrera.unt.edu.ar Temario 1. Evolución histórica. 2. Repaso de conceptos importantes.
Más detallesArquitectura de Conjunto de Instrucciones (ISA) Integer Java Virtual Machine (IJVM) para Mic-1
Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC2721 Arquitectura del Computador I Prof. Osberth De Castro Clase 03 Arquitectura de Conjunto de Instrucciones (ISA) Integer Java Virtual
Más detallesMICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES
MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES J.D. MUÑOZ1, S. ALEXANDRES1 Y C. RODRÍGUEZ-MORCILLO2 Departamento de Electrónica y Automática. Escuela Técnica Superior de Ingeniería ICAI.
Más detallesIntroducción a la Computación (Matemática)
Introducción a la Computación (Matemática) Primer Cuatrimestre de 2016 Brevísima Introducción a la Organización de Computadoras 1 Mapa de la materia Programas simples en C++. Especificación de problemas.
Más detallesTutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción
Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Paralelismo a nivel de instrucción
Más detallesTema 1. Fundamentos del lenguaje ensamblador
Tema 1. Fundamentos del lenguaje ensamblador Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Índice Estructura del
Más detallesUNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores
12. Diseño de un Procesador. (Monociclo) 12.1 Especificación de instrucciones. El primer paso es la especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar
Más detallesEntender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este
COMO PENETRAR UN SISTEMA POR MEDIO DE DESBORDAMIENTO DE BUFFER OBJETIVO Entender los aspectos técnicos, por los cuales un intruso puede ingresar a un sistema y tomar el control de este AGENDA Programas
Más detallesTema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 2 INSTRUCCIONES DE UN COMPUTADOR ÍNDICE Definiciones Formatos de instrucción Modos de direccionamiento Tipos de instrucciones Diagrama de flujo Lenguaje del computador Definiciones: conceptos de arquitectura
Más detallesIntel 8086 modelo básico (primera parte) Registros:
Intel 8086 modelo básico (primera parte) Registros: Uso general: AX, BX, CX, DX, SI, DI, BP. Uso con direccionamento especial: SP, IP. Registros de segmento: CS, SS, DS, ES. Modelo de los registros: 20
Más detallesPROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C
PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido
Más detallesArquitectura 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