ESTRUCTURA DE MICROPROCESADORES
|
|
- Juan Carlos Herrero Carrasco
- hace 7 años
- Vistas:
Transcripción
1 ESTRUCTURA DE MICROPROCESADORES Programación Básica con ensamblador Profesor Ing. Johan Carvajal Godínez
2 Agenda de la Clase 1. Introducción 2. Elementos básicos de lenguaje ASM 3. Instrucciones básica en Ensamblador 4. Ejemplo: Suma y restas de enteros 5. Proceso de ensamblado, enlazado y ejecución de un programa en ASM 6. Protocolo de definición de datos 7. Definición de constantes 8. Programación en modo real 9. Estructuras básicas de programación 2
3 Que es ensamblador? El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas en una computadora, y constituye la representación más directa del código máquina específico para cada arquitectura.
4 Como funcionan los ensambladores? Un ensamblador crea código objeto traduciendo instrucciones mnemónicas a códigos operativos e interpretando los nombres simbólicos para direcciones de memoria y otras entidades. El uso de referencias simbólicas es una característica básica de los ensambladores, evitando tediosos cálculos y direccionamiento manual después de cada modificación del programa. La mayoría de los ensambladores incluyen facilidades para crear macros, a fin de generar series de instrucciones cortas que se ejecutan en tiempo real, en lugar de utilizar subrutinas
5 Que es código objeto? Se llama código objeto en programación al código resultante de la compilación del código fuente. Consiste en lenguaje máquina o bytecode y se distribuye en varios archivos que corresponden a cada código fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los archivos de código fuente con un programa llamado enlazador (linker).
6 Que es un programa ejecutable Un programa ejecutable es un archivo binario cuyo contenido se interpreta por el ordenador como un programa. Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto. Existen otro tipo de programas llamados scripts. No contienen código máquina sino el código fuente, que se interpreta a la vez que se ejecuta.
7 Fases en generación de un ejecutable TASM TLINK
8 Como se programa en ensamblador? Se analiza el problema Se identifican los subproblemas Se crean bloques de solución al sub-problema Se enlazan los bloques en un bloque principal Se llama el bloque principal
9 Estructura de un programa en ASSY X86 Un programa debe contener la definición de 4 bloques básicos Modelo Modelo de administración de la memoria Datos Variables Constantes Pila Tamaño de la pila Código Código fuente
10 Modelo de programación Define la extensión que va a tener el programa y la forma en que se va a disponer del código Se indica por directriz.model Los tipos de modelo a indicar son Tiny: solo un segmento para todos los datos y código, puede ser un.com Small: código y datos pueden compartir segmento físico. Todos los procedimientos y variables se direccionan como NEAR con solo apuntar al desplazamiento. Compact: por defecto todos los elementos de código se ubican en un segmento físico pero los datos pueden tener su propio segmento. Medium: Es el opuesto a compact Large: El código esta separado físicamente de los datos Flat: se usa en aplicaciones con memoria paginada. Win32
11 Segmentos Pila Se declara el tamaño por medio de la directriz.stack + tamaño en bytes Datos Se declara por medio de la directriz.data El formato para declarar una variable es Nombre-longitud-valor predeterminado FileName DB "C:\new.txt" Constantes Se declara en cualquier parte del programa Se hace por medio del nombre EQU valor LShfBit equ 2
12 Niveles de programación en ensamblador La programación en ASM se puede orientar en tres niveles de acuerdo a las capacidades y requerimientos del problema a resolver OS Function Level 2 ASM Program BIOS Function Level 1 Hardware Level 0
13 Elementos Básicos del lenguaje ASM Manejo de enteros Constantes Expresiones Manejo de caracteres y cadenas String Palabras Reservadas e identificadores Directrices e instrucciones Etiquetas Mnemónicos y operandos Comentarios 13
14 Constantes Enteras Pueden estar antecedidas por +/- Se pueden definir números en binario, decimal, hexadecimal u octal Caracteres de distinción de código: h hexadecimal d decimal b binario r Real codificado Ejemplos: 30d, 6Ah, 42, 1101b Usualmente en Hex se comienza: 0A5h 14
15 Operaciones con enteros Nivel de precedencia en operaciones con enteros: Ejemplos: 15
16 Manejo de caracteres y cadenas Los caracteres se pueden manejar con comillas simples o dobles 'A', "x" Tamaño de ASCII = 1 byte Las cadenas se pueden manejar con comillas simples o dobles "ABC" 'xyz' Cada carácter ocupa un byte 16
17 Palabras reservadas e identificadores Las palabras reservadas no pueden ser utilizadas como identificadores Mnemónicos, Operadores, Tipos de datos, etc Identificadores Caracteres incluyendo números No son sensibles a la mayúsculas La primera letra debe ser: ó $ 17
18 Directrices Son comandos que son reconocidos por el compilador pero que no son parte del set de instrucciones Ejemplo: Aquellos usados para declarar segmentos, modelos de memoria y algunas otras funciones Diferentes compiladores tienen diferentes directrices TASM son diferentes a MASM 18
19 Instrucciones Se crea una secuencia de código maquina por parte del ensamblador Es lo que utiliza el CPU durante el tiempo de ejecución del programa Se usa el ISA de IA32 Una instrucción se conforma por: Etiquetas (opcional) Mnemónico (requerido) Operando (según el mnemónico requerido) Comentario (opcional) Etiqueta: Mnemónico Operando Comentario 19
20 Las etiquetas Funcionan como marcadores dentro del CS como del DS Se debe definir una serie de reglas para su definición Etiquetas de datos Deben ser únicas Etiquetas de código Se utilizan usualmente para marcar direcciones de salto Ejemplo: ciclo1: 20
21 Mnemónicos y Operandos Mnemónicos de instrucciones Describen la función de la instrucción ejemplos: MOV, ADD, SUB, MUL, INC, DEC Operandos Constantes Expresiones con constantes Registros Direcciones de memoria Algunos programadores tratan las constantes como valores inmediatos 21
22 Los comentarios Un programa bien comentado es un programa! Explicar el propósito del código Cuando y quien escribió el programa Historial de revisión Explicar algún truco utilizado Comentarios específicos a la aplicación Comentarios de una línea Comienzan con punto y coma (;) Un bloque de comentarios Inicio: Se escribe la directriz COMMENT y un caracter elegido por el programador Termina: El caracter elegido por el programador 22
23 Algunos formatos de instrucción Sin operandos stc ; Pone en uno la bandera de carry Con un operando inc eax ; Incrementa EAX inc mybyte ; Incrementa valor Con dos operandos add ebx,ecx ; Registro, Registro sub mybyte,25 ; Memoria, Constante add eax,36 * 25 ; Registro, expresión 23
24 Ejemplo: Suma y restas de enteros TITLE Suma y resta (AddSub.asm) ; Este programa suma y resta números de 32 bits.model small.data.stack.code main PROC mov eax,10000h ; EAX = 10000h add eax,40000h ; EAX = 50000h sub eax,20000h ; EAX = 30000h call DumpRegs ; Despliega los registros exit main ENDP END main 24
25 Consejos para codificación (1 de 2) Consejos sobre uso de mayúsculas Todo en mayúsculas Nada en mayúsculas Mayúsculas solo para instrucciones, operandos, directrices Solo directrices y operandos Otras sugerencias Usar identificadores descriptivos Una línea de separación entre procedimientos 25
26 Consejos para codificación (1 de 2) Identación y espaciamiento Las etiquetas de datos y códigos sin identación Las instrucciones se identan con un TAB Los comentarios se comienzan a partir de las columna 40 Se dan 1 a 3 espacios entre mnemónico y operando ejemplo: mov ax,bx Se dejan una o dos líneas entre procedimientos o macros 26
27 Machote de programa TITLE NombrePrograma (Template.asm) ; Descripción del Programa: ; Autor: ; Fecha de creación: ; Revisión: ; Fecha: Modificado por:.model small.data ; (Declare las variables aquí).code main PROC ; (Código del procedimiento) exit main ENDP ; (Procedimientos adicionales) END main 27
28 Ensamblado, enlace y ejecución de ASM Ciclo de ensamblado, enlace y ejecución make32.bat Archivo de listado Archivos de mapa de memoria 28
29 Ciclo de ensamblado, enlace y ejecución El diagrama describe la secuencia de pasos requeridos para crear un programa en ASM Link Library Source File Step 2: assembler Object File Step 3: linker Executable File Step 4: OS loader Output Step 1: text editor Listing File Map File 29
30 Definición de datos en lenguaje ASM Tipos de datos intrínsicos directrices de definición de datos Definición de datos tipo BYTES y SBYTES Definición datos tipo de WORDS y SWORDS Definición de datos tipo DWORD y SDWORD Definición de datos tipo QWORD Definición de datos tipo TBYTE Definición de datos con números reales Little Endian Order Declaración de datos sin inicializar 30
31 Tipos de datos intrínsicos (1 / 2) BYTE, SBYTE Entero de 8 bits sin signo; Entero de 8 bits con signo WORD, SWORD Entero de 16 bits sin signo; Entero de 16 bits con signo DWORD, SDWORD Entero de 32 bits sin signo; Entero de 32 bits con signo QWORD Entero de 64 bits TBYTE Entero de 80 bits 31
32 Tipos de datos intrínsicos (2 / 2) REAL4 IEEE: Real corto de 4 bytes REAL8 IEEE: Real largo de 8 bytes REAL10 IEEE: Real extendido de 10 bytes 32
33 Procedimiento de definición de datos Se hace dentro del segmento de datos y permite declarar las variables a utilizar Se puede asignar nombre a las variables Sintaxis: [nombre] directiva de inicialización [,inicializador]... Ejemplo: prueba BYTE 10 El valor del inicializador se carga en la memoria 33
34 Definiendo Bytes Cada una de estas definiciones trabaja sobre bytes: PRUEBA1 BYTE 'A' PRUEBA2 BYTE 0 PRUEBA3 BYTE 255 PRUEBA4 SBYTE -128 PRUEBA5 SBYTE +127 PRUEBA6 BYTE? ; caracter inicializado ; Byte sin signo más bajo ; Byte sin signo más alto ; Byte con signo más bajo ; Byte con signo más alto ; Byte sin inicializar Algunos debugers muestran los valores con formato de signos y valor Ejemplo: -2 34
35 Arreglos de bytes Diferentes formas de declarar arreglos de bytes: LISTA1 BYTE 10,20,30,40 MATRIZ1 BYTE 10,20,30,40 BYTE 50,60,70,80 BYTE 81,82,83,84 LISTA2 BYTE?,32,41h, b LISTA3 BYTE 0Ah,20h, A,22h 35
36 Definiendo cadenas (1/3) Una cadena String se implementa como un arreglo de caracteres: Se inicializa con una cadena encerrada por dobles comillas Se debe terminar con un caracter nulo o 0 Ejemplos: str1 BYTE Escriba una oración:",0 str2 BYTE 'Error: Programa terminado!!!',0 str3 BYTE 'A','E','I','O','U' saludo BYTE Bienvenido a PATIX" BYTE Version II",0 36
37 Definiendo cadenas (2/3) Para definir una cadena con múltiples líneas, cada línea se termina con una coma menu BYTE Menu Principal",0dh,0ah,0dh,0ah, "1. Crear una nueva cuenta",0dh,0ah, "2. Iniciar un nuevo usuario",0dh,0ah, "3. Abrir perfil",0dh,0ah, "4. Editar Perfil ",0dh,0ah, "5. Salir",0ah,0ah, Escoje una opción:> ",0 Irvine, Kip R. Assembly Language for Intel-Based Computers,
38 Definiendo cadenas (3/3) Caracteres para terminación de cadena: 0Dh = Retorno de carro 0Ah = Nueva Línea str1 BYTE Escriba su Nombre: ",0Dh,0Ah, BYTE Escriba su direccion: ",0 NuevaLinea BYTE 0Dh,0Ah,0 Consejo: Defina todas las cadenas que requiera usar en el misma área del segmento de datos 38
39 Uso del operador DUP Se utiliza el operador DUP para reservar espacio en la memoria para una cadena Formato: Variable tipo contador DUP (inicialización) contador e inicialización deben se constantes o expresiones con constantes var1 BYTE 20 DUP(0) ; 20 bytes, todos en cero var2 BYTE 20 DUP(?) ; 20 bytes, sin inicializar var3 BYTE 4 DUP("STACK") ; 20 bytes: "STACKSTACKSTACKSTACK" var4 BYTE 10,3 DUP(0),20 ; 5 bytes 39
40 Definición de datos tipo WORD y SWORD Reserva espacio en el segmento de datos para enteros de 16 bits con y sin signo word1 WORD word2 SWORD word3 WORD? word4 WORD "AB" mylist WORD 1,2,3,4,5 array WORD 5 DUP(?) ; Máximo valor sin signo ; Mínimo valor con signo ; variables sin inicializar ; Variable inicializada ; Arreglo de palabras ; Arreglo sin inicializar 40
41 Definición de datos tipo DWORD y SDWORD Reserva espacio en el segmento de datos para enteros de 32 bits con y sin signo val1 DWORD h val2 SDWORD val3 DWORD 20 DUP(?) val4 SDWORD 3, 2, 1,0,1 ; Doble palabra sin signo ; Doble palabra con signo ; arreglo sin signo ; Arreglo con signo 41
42 Definición de QWORD, TBYTE y REALES Reserva espacio en el segmento de datos para enteros de 64 bits, enteros de 80 bits y valores reales quad1 QWORD h val1 TBYTE Ah rval1 REAL4-2.1 rval2 REAL8 3.2E-260 rval3 REAL10 4.6E+4096 ShortArray REAL4 20 DUP(0.0) 42
43 Little Endian Order Todos los datos con longitudes mayores a un byte se guardan en orden inverso en el segmento de datos Ejemplo: valor1 DWORD h 43
44 Declaración de datos sin inicializar Se puede declarar un segmento de datos sin inicializar por medio de la directriz.data? Dentro de un segmento de datos se puede declarar variable sin un valor predefinido por medio del inicializador? Arreglo DWORD 10 DUP(?) Ventaja: Reduce el tamaño del programa.exe generado 44
45 Constantes simbólicas Directriz de igual Cálculo del tamaño de arreglos y cadenas La directriz EQU La directriz TEXTEQU 45
46 La directriz de igual Nombre = Expresión Expresión es un entero de 32 bits que puede formarse con una expresión o una constante Puede ser redefinido Nombre es llamado una constante simbólica Buen método para administrar parámetros COUNT = mov al,count 46
47 Cálculo del tamaño de un arreglo de bytes Contador de posición actual: $ Se resta el inicio de lista La diferencia es el tamaño del arreglo list BYTE 10,20,30,40 ListSize = ($ - list) 47
48 Cálculo del tamaño de un arreglo de WORDS Como cada palabra toma dos bytes se divide el número de bytes por dos list WORD 1000h,2000h,3000h,4000h ListSize = ($ - list) / 2 48
49 La directriz EQU Puede definir constantes simbólicas como numéricas No puede ser redefinidas en tiempo de ejecución Se utilizan símbolos <> para definir su argumento PI EQU <3.1416> presskey EQU <"Press any key to continue...",0>.data prompt BYTE presskey 49
50 La directriz TEXTEQU Se utiliza para definir un símbolo como una constante ya sea numérica o línea de texto Son llamadas macros de texto Pueden ser redefinida durante tiempo de ejecución continuemsg TEXTEQU <"Do you wish to continue (Y/N)?"> rowsize = 5.data prompt1 BYTE continuemsg count TEXTEQU %(rowsize * 2) ; evaluates the expression setupal TEXTEQU <mov al,count>.code setupal ; se sustituye por "mov al,10" 50
51 Programación en modo real (1/2) Se trabaja en ambiente MS-DOS (16 bits) Ventajas Habilita el uso de llamadas DOS y BIOS No hay restricción de acceso a memoria Desventajas Se debe administrar tanto segmentos como desplazamientos No existen llamadas a sistema: SYSCALLS Está limitado a 640K de memoria de programa 51
52 Programación en modo real (1/2) Requirements Titulo del programa y definición del modelo de administración de la memoria.title.model Definición de los segmentos Pila Datos código Inicialización del segmento de datos: mov ax,@data mov ds,ax 52
53 Implementación de estructuras típicas
54 Implementación de estructuras típicas
55 Implementación de estructuras típicas
56 Implementación de estructuras típicas
57 Implementación de estructuras típicas
58 Tarea Instalar el Turbo Assembler 5.0 Encontrar el problema al programa que el profesor plantea en el TEC virtual, arreglarlo y documentarlo
59 Bibliografía Irvine, Kip; Assembly Language for Intel- Based Computers. 5th Edition. Pearson Education. 2007
ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo
ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS Características de un Ensamblador de Archivo Traduce de Leng Ensamblador a Lenguaje máquina Permite definición de etiquetas Reserva memoria para variables octales
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Más detallesTodo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
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 detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesDIRECTIVAS DEL ASM86
DIRECTIVAS DEL ASM86 Directiva SEGMENT / ENDS nombre SEGMENT [alineación] [combinación] [nombre_clase] PARA PUBLIC BYTE COMMON WORD STACK PAGE MEMORY INPAGE AT nombre ENDS Se usa para definir un segmento
Más detallesINTRODUCCIó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 detallesManual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
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 detallesConceptos de Arquitectura de Computadoras Curso 2015
PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.
Más detallesJava Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
Más detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesSobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado.
Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado. Fuente de la información de partida para este documento: http://homepage.mac.com/eravila/asmix86.html PRIMERO
Más detallesEnteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.
LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado
Más detallesArquitectura (Procesador familia 80 x 86 )
Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene
Más detallesConstantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:
Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento
Más detallesUNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA
UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA TÉCNICAS DIGITALES III TRABAJO PRÁCTICO N 3 ENLACE DE RUTINAS DE ASSEMBLER EN UN LEGUAJE DE ALTO NIVEL COMO C AÑO
Más detallesMétodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Más detallesAPUNTES DE LENGUAJE ENSAMBLADOR. Lenguaje ensamblador
Lenguaje ensamblador Compiladores y Ensambladores Tanto los compiladores como los Ensambladores caen en la categoría de programas que llamamos traductores. Un traductor es un programa que acepta archivos
Más detallesRepresentación de datos y aritmética básica en sistemas digitales
Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1 Sistemas de Numeración: Alfabeto:
Más detallesDiseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema
Más detallesEl Diseño de un Lenguaje Máquina
Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje
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 detallesPráctica Nº 4 Entorno de Programación
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DE LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA DEP. DE ING. ELECTRÓNICA LABORATORIO DE ARQUITECTURA DEL COMPUTADOR Objetivos:
Más detallesEstructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Más detallesCurso de Programación Avanzada en C
Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados
Más detallesTEMA 3: El proceso de compilación, del código fuente al código máquina
TEMA 3: El proceso de compilación, del código fuente al código máquina 3.1 Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado
Más detallesAlternativas de programación
Alternativas de programación Enteramente en bajo nivel programa completo librería rutina particular Embebido en alto nivel rutinas librería 1 Alternativas de programación Enteramente en bajo nivel programa
Más detallesQué es un programa informático?
Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s
Más detallesDesde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Más detallesTema 5: La pila, las macros y los procedimientos
Tema 5: La pila, las macros y los procedimientos S La pila S Las macros S Definición de procedimientos S Tipos de procedimientos: NEAR y FAR S Paso de parámetros a un procedimiento S Mediante registros
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 detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesFundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
Más detallesTécnicas de Programación
Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia
Más detallesLaboratorio de Arquitectura de Redes. Entrada y salida estándar
Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada
Más detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesFUNCIONAMIENTO DEL ORDENADOR
FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores
Más detallesINDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)
INDICE Capitulo 1. Qué es un computador? 1.1. Introducción 1 1.2. El computador como dispositivo electrónico 2 1.3. Cómo se procesa la información? 3 1.4.Diagrama de bloques de un computador 1.4.1. Información
Más detallesConstruyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
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. 2. Desarrollo de programas. 3. Sintaxis de un lenguaje ensamblador.
Más detallesAPENDICE B Ensamblador IASM11/Simulador AVSIM11
APENDICE B Ensamblador IASM11/Simulador AVSIM11 El programa ensamblador IASM11, es una herramienta que permitirá editar y ensamblar programas para el microcontrolador HC11. Este programa corre bajo la
Más detallesLenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa
Más detallesEstructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez
Estructura de Microprocesadores PIC 18F4550 Administración de la memoria Profesor Ing. Johan Carvajal Godínez Contenidos Organización de la memoria del MCU Administración de la memoria de programa (Flash)
Más detallesTema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Más detallesFunciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
Más detallesProgramación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:
Más detallesFundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Más detallesIngeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador.
Sistemas Operativos Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador. Modalidad: Obligatorio. Objetivos: Abordar la materia Sistemas Operativos desde el
Más detallesMÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR
85 MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR El módulo III está conformado por las unidades 7 y 8. El estudio de estas unidades, permite desarrollar en el estudiante las competencias necesarias en la
Más detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesLEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.
LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.
Más detallesLENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
Más detallesCurso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
Más detallesLaboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Más detallesCiclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp
Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas
Más detallesUnidad I: Organización del Computador. Ing. Marglorie Colina
Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar
Más detallesFicha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Más detallesLenguaje de programación C. Introducción
Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la
Más detallesTUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación
TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas
Más detallesESCUELA DE INFORMÁTICA
TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
Más detalles$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Más detallesObjetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1
Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador
Más detallesUnidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
Más detallesProgramación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Más detallesFundamentos de Programación 2017-I
Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis
Más detallesComputación II. Introducción a Visual Basic
Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida
Más detallesMIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C
MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C Antes de comenzar a desarrollar aplicaciones podemos crear el programa en cualquier editor de textos, solo hay que guardarlo con la extensión X.c
Más detallesProgramación en Visual Basic Ricardo Rodríguez García
Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.
Más detallesFundamentos de Informática 2. Conceptos Básicos. El ordenador. Contenidos. El ordenador. El ordenador. El ordenador. Tema 2.
2 Contenidos Fundamentos de Informática 2. Conceptos Básicos - El Ordenador (el hardware) - El Software - - El bit y sus unidades de medida - - - Fundamentos de Informática Grado en Ingeniería Química
Más detallesPROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesFundamentos de JAVA. Angel Kuri Enero, /2/2006
Fundamentos de JAVA Angel Kuri Enero, 2006 Enunciados y Expresiones Los siguientes son enunciados sencillos: int i = 1 import java.awt.font System.out.println( Esta moto es una + color + + marca); m.enginestate
Más detallesLENGUAJE ENSAMBLADOR 80386 PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES
PRÁCTICA 11 SUMA, RESTA, MULTIPLICACIÓN Y DIVISIÓN DE DOS NÚMEROS ENTEROS POSITIVOS DE HASTA 20 DÍGITOS DECIMALES 1. INTRODUCCIÓN Mediante esta práctica, trabajaremos con números binarios de hasta veinte
Más detallesTema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Más detallesRelación de Problemas I
Relación de Problemas I 352) $1'5e6 52/'È1 $5$1'$ 1. Realizar el cálculo del tiempo que transcurre durante la ejecución del bloque de instrucciones sombreado, en función del contenido de los registros
Más detallesDESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Más detalles1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
Más detallesDefinición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
Más detallesIntroducción al NASM. Convenciones de colores
Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C. 1 Convenciones de colores Rojo= Directivas propias del nasm sin traducción directa a ensamblador Morado= Directivas del ensamblador En
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detallesTodos los comandos de DEBUG se invocan usando una sola letra y son los siguientes:
USO DE DEBUG Con el sistema operativo DOS (MS-DOS = Microsoft Disk Operating System) se incluye un programa para observar el comportamiento de los registros del CPU 80386. Recuérdese que los registros
Más detallesLa última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
Más detallesHerramientas computacionales para la matemática MATLAB: Cómo guardar el trabajo?
Herramientas computacionales para la matemática MATLAB: Cómo guardar el trabajo? Verónica Borja Macías Marzo 2013 1 Cómo guardar el trabajo? Trabajar en la ventana de comandos es similar a realizar cálculos
Más detallesTAREA 1 ARITMETICA PARA BCD Y ASCII.
1 Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Microprocesadores. TAREA 1 ARITMETICA PARA BCD Y ASCII. Objetivos específicos Conocer el manejo de los caracteres ASCII para la presentación en
Más detallesP L A N I F I C A C I O N
P L A N I F I C A C I O N ESTABLECIMIENTO: INSTITUTO SUPERIOR JUJUY CARRERA: TECNICATURA SUPERIOR EN INFORMATICA CON ORIENTACION EN SISTEMAS DE INFORMACION ASIGNATURA: HS. CATEDRA: MODALIDAD: PROFESOR:
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesLección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Más detallesC1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid
C1 INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Índice 1. Lenguajes de Programación 1. Definición. 2. Niveles
Más detalles3 - Arquitectura interna de un up
cei@upm.es 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos
Más detallesProgramación en java. Estructuras algorítmicas
Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica
Más detallesTEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
Más detallesGenerador de analizadores léxicos FLEX
Generador de analizadores léxicos FLEX Procesadores de Lenguajes 4 o Informática PL curso 2008-2009 (CCIA) CCIA Octubre 2008 PL 0809 (CCIA) Introducción a FLEX Octubre-2008 1 / 12 Uso de FLEX FLEX: traduce
Más detallesApuntadores en C y C++
Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta
Más detallesSistemas Operativos. IES Pedro Espinosa. Relación de ejercicios Tema 1: Conceptos básicos de informática
Relación de ejercicios Tema 1: Conceptos básicos de informática 1. Cuál de los números binarios siguientes es mayor: 0101110 ó 0110110? 2. Investiga en alguna enciclopedia informática los orígenes de la
Más detallesProgramación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Más detalles