You are on page 1of 7

Un Lenguaje de Programación es una notación formal para describir algoritmos o funciones que serán ejecutadas por un computador.

A un grupo de 16 bits se le conoce como palabra, una palabra puede ser dividida en grupos de 8 bits llamados bytes, y a los grupos de 4 bits les llamamos nibbles.
EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa.

Características:  Posibilidad de traducción automática a lenguaje máquina.  Independencia de la arquitectura del computador.  Transportabilidad. Clasificación:  Lenguajes de propósito general.  Lenguajes de propósito específico (comerciales, científicos, educativos). Clasificación:  Lenguajes procedimentales  Lenguajes declarativos  Totalmente vinculados a la estructura del computador.  Diseñados para sacar partido de la máquina. El lenguaje ensamblador: es un derivado del lenguaje maquina y está formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina. Lenguaje en Ensamblador Actualmente se lo utiliza particularmente en ambientes académicos y de investigación, especialmente cuando se requiere: 1) la manipulación directa de hardware 2) se pretenden altos rendimientos o un uso de recursos controlado y reducido Características:  el código escrito en lenguaje Ensamblador posee una cierta dificultad de ser entendido directamente por un ser humano ya que su estructura se acerca más bien al lenguaje máquina (lenguaje de bajo nivel).  El lenguaje Ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder usado en otro microprocesador.  Los programas hechos en lenguaje Ensamblador son generalmente más rápidos y consumen menos recursos del sistema (memoria RAM y ROM).  Con el lenguaje Ensamblador se tiene un control muy preciso de las tareas que realiza un microprocesador por lo que se pueden crear segmentos de código difíciles de programar en un lenguaje de alto nivel.

tienen un tiempo de acceso muy breve y muy poca capacidad. Tipos de Lenguajes Ensambladores: . tal como el añadir memoria o un disco duro más rápido a una computadora. Esta forma de estructurar la memoria se llama organización lineal o de una dimensión.1 El microprocesador . Sincronización y coordinación de las operaciones. un registro buffer de memoria o registro de datos (MB. Normalmente una pequeña fracción de la memoria principal.Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.  Memorias de masas o auxiliares: Las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida: .  Macroensambladores  Lenguajes ensambladores de una fase  Lenguajes ensambladores de dos fases Internamente la memoria tiene un registro de dirección (MAR. un decodificador como se ve en la figura 3-2. . al de la memoria central y su capacidad puede ser algunas veces mayor.  (porque forman parte de ella). El tiempo de similar. y pequeño tiempo de acceso. memory address register).Lenguajes simbólicos:  Lenguajes ensambladores  Ensambladores Cruzados (Cross-Assembler)  Ensambladores Residentes. tal como añadir una computadora nueva a un programa de aplicación para espejo.  Registros intermedios: Constituyen un paso intermedio entre el procesador y la memoria. o MDR. significa el añadir más recursos a un solo nodo en particular dentro de un sistema. Escalada horizontalmente La escala horizontalmente o escala. suelen tener relojes diferentes). a lo sumo un poco mayor. 1. significa agregar más nodos a un sistema. memory buffer.Lenguaje máquina .  Memoria central o principal:  Extensiones de memoria central: Son memorias de la misma naturaleza que la memoria central que amplían su capacidad de forma modular. Los registros tienen un tiempo de acceso muy pequeño y una capacidad mínima.  Memorias caché: Son memorias de pequeña capacidad. memory data register) y. En la figura cada línea de palabra activa todas las células de memoria que corresponden a la misma palabra. El escalar verticalmente o escalar hacia arriba.Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).Existen a su vez dos formas de lograr la escalabilidad en los sistemas: Escalada verticalmente. normalmente igual a la palabra del procesador (1 a 8 bytes). Esta última función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo.

Que es la parte del micro especializada en esa clase de cálculos matemáticos. antiguamente estaba en el exterior del procesador en otro chip. tiene asignado un número de puerto que el procesador utiliza como un número de teléfono para llamar al circuito o a partes especiales. . formando un sistema completo para cumplir con una aplicación específica dentro del mundo real.  Coprocesador Matemático: o correctamente la FPU (Unidad de coma flotante).El microprocesador es un circuito integrado que incorpora en su interior una unidad central de proceso (CPU) y todo un conjunto de elementos lógicos (por registros.  Puertos: es la manera en que el procesador se comunica con el mundo externo. la unidad de control y la unidad aritmético-lógica) que permiten enlazar otros dispositivos como memorias y puertos de entrada y salida (I/O). En un microprocesador podemos diferenciar diversas partes:  El encapsulado:  La memoria cache: es una memoria ultrarrápida que emplea el micro para tener a mano ciertos datos que predeciblemente serán utilizados en las siguientes operaciones sin tener que acudir a la memoria RAM reduciendo el tiempo de espera.  Los registros: son básicamente un tipo de memoria pequeña con fines especiales que el micro tiene disponible para algunos usos particulares. Un puerto es parecido a una línea de teléfono. Cualquier parte de la circuitería de la computadora con la cual el procesador necesita comunicarse.

. Un BUS es un grupo común de cables que interconectan componentes de un sistema computacional. Los registros son espacios físicos que se emplean para controlar las instrucciones de ejecución. manejar direccionamiento de memoria y proporcionar capacidad aritmética. Registros. Son una serie de celdas de memoria que se utilizan con mucha frecuencia.Estructura General de un Microprocesador Buses. Existen de varios tipos: Registros de segmento.

Es requerido para algunas operaciones con cadenas (de caracteres). Registros Índice. I. restar. Registro CX. Es el acumulador principal. Se usa en operaciones de E/S y en operaciones de multiplicación y división con cifras grandes. más un valor de desplazamiento (del apuntador de instrucción IP). Registro SS. Los registros SP y BP están asociados con el registro SS y permiten al sistema accesar datos en el segmento de la pila. I. El IP esta asociado al CS en el sentido de que IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente. II. como sumar. III. Registro SI. Registro DS.  Fetch. Los bits del registro de banderas son:  OF (Overflow . Es usado en operaciones de E/S y aritmética. II. Registro DI. Indica el desbordamiento de un bit de orden alto después de una operación aritmética. Sirven para direccionamiento indexado y para sumas y restas. Facilita la referencia de parámetros .Desbordamiento). Con esta dirección de segmento. y proporcionan un área de memoria para direccionamiento existen de forma general los siguientes: I. Permite la colocación en memoria de una pila. Está asociado al registro ES. los cuales son los datos y direcciones transmitidos vía la pila Registro Apuntador de instrucciones (IP). Registro BP.Tienen una longitud de 16 bits. Registro DX. Contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. Almacena la dirección inicial del segmento de datos de un programa. Es requerido para algunas operaciones con cadenas (de caracteres). Registro BX. 2) ejecuta instrucciones que se le dan a la computadora a muy bajo nivel realizando operaciones lógicas simples. Registro base. Registros Apuntadores. puede ser un índice para direccionamiento indexado. para almacenamiento temporal de direcciones y datos. I. III. indica la dirección de una dirección de una instrucción. Sirve para indicar el estado actual de la máquina y el resultado del procesamiento. Pueden ser direccionados como una palabra o como parte de un byte. Registro índice fuente. Registro de datos. Almacena un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila. si atendemos al uso. Registros SP. multiplicar o dividir y 3)controla el flujo del programa mediante instrucciones simples. envío de la instrucción al decodificador . II. La ejecución de las instrucciones se puede realizar en varias fases:  PreFetch. II. Registros de propósito general. Registro Contador. El microprocesador ejecuta tres tareas principales para el sistema computacional: 1) Transfiere datos entre sí mismo y los sistemas de E/S. Los registros de propósito general son las unidades principales de almacenamiento de datos. Puede contener un valor para controlar el número de veces que un ciclo se repite IV. Registro destino. pre lectura de la instrucción desde la memoria principal. Registro CS Almacena la posición inicial del segmento de código de un programa. Registro AX. Registro de banderas. Está asociado al registro DS.

ensamblador 3. determinar qué instrucción es y por tanto qué se debe hacer. Montaje del programa ejecutable Montador 4.  Inhibición de interrupciones: Se deshabilitan las interrupciones mientras se está tratando una.  Inhibición de interrupciones  Deshabilitar todas las interrupciones para esto basta con inhibir el bit del registro de flags dedicado a las interrupciones  Como hemos dicho se pueden deshabilitar al principio de la RSI y activarlas de nuevo al finalizar la misma. Se puede cambiar por el programador. intérprete.  Interrupciones anidadas: Mientras se está procesando una determinada rutina de servicio de interrupción sucede otra señal de interrupción. Carga y ejecución del programa Cargador . etc. es decir. puede ser de manera automática o por el usuario  Desactivar solo las interrupciones que tengan menor prioridad que la asociada a la RSI que se está ejecutando en ese momento  Deshabilitar de forma selectiva distintos niveles de prioridad de interrupción para lo cual se emplean registros especiales denominados máscaras en el que cada uno de sus bits identifican a un nivel distinto y modificando su contenido podemos establecer que niveles están activos en ese momento. se pueden producir en cualquier momento independientemente de lo que esté haciendo la CPU en ese momento. Traducción a código máquina Compilador. Las causas que lo producen son externas al procesador y a menudo suelen estar ligadas con distintos dispositivos de E/S.  Escritura de los resultados en la memoria principal o en los registros.  Lectura de operandos (si los hay).  Interrupciones software o excepciones : Son aquellas que se producen de forma síncrona a la ejecución del procesador y por tanto podrían predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU. Tipos de interrupciones  Interrupciones hardware: Estas son asíncronas a la ejecución del procesador. Decodificación de la instrucción. es decir. lanzamiento de las máquinas de estado que llevan a cabo el procesamiento. Normalmente las causas de estas interrupciones suelen ser realizaciones de operaciones no permitidas tales como la división por 0.comentarios] DESARROLLO DE PROGRAMAS Pasos en el desarrollo. traducción y ejecución de programas: 1. el desbordamiento.  Sistemas de prioridad  Interrupciones simultáneas: No tienen porque ocurrir de manera simultánea si no que se refiere a que en un momento dado puede haber varias interrupciones activas. Cada sentencia ocupa una sola línea y tiene la siguiente estructura: [etiqueta] [operación] [operandos] [.  Ejecución. Edición Editor de textos 2. el acceso a una posición de memoria no permitida.

5. Verificación del funcionamiento del programa Depurador .

O/4 /0 :3 5747../4034507./70.203946:080701070.. 548...03.00.$0308039/4/06:0!3/./4708  487089748$!!089E3..4245.4308/0../0:3.2../020247.948/0:35747..7/.-7.5. 8:0390 3897:.43.:84 !:0/03807/70.5:39./47 /0 3897:. 3897:..43.4308 !  439030 0 /085.488:03908   #08974 $ 2.:.948  8 .20394 /0 /..5.   #08974$$ !07290 .. .7E209748  48 .3897:.7./70. 7010703.4308 97.2039408903 /01472.424:3..6:0089E 803/4574.9:.948  /70...9:./0 /70...03.20394 /0 /70..O3 /0 ..903/0248./48./47573.J...O/4 6:080089.    #089748$! 2.03.44.08 /0 .03.5.20390  #089748/05745O8940307....430708974$$5072903.  43 089.O303 20247.4308/.:2:..:3... 843 .:9../08 573..3:3E70.43..2..O3/0:3...5.. /70./4. .8 :3/.08..84...    #08974 !  . 5..O3/0:3.O3 3.790/0:3-90    #08974 80. 8:8.5..  48 7089748 /0 5745O894 0307..439://0-98 574547.03.948030 8020394/0./03974/08020394/0..4.5. #089745:39./08020394/0/.88902..5..3829/48.2.08 843 48 /.O3 6:0 80 00. .0307.O3 /0 8020394  2E8 :3 .3/4.03.948  #0897485:39.47 /0 /085..84./47/03897:.47/0/085.9.O33. ..08. /0 8020394 /0 .O3 !  3/./48.O3.:9...5.O3    #08974$ 2.20394 /0 ..20394902547.9:.-7../.5.. /0 5.7.2..%0303:3.   ! 089../70./70.

.$./47 !:0/0 .4390307 :3 .948  $0 :8.7 0 32074 /0 .4308 /0 . 03 4507.47 5..203943/0..05.48070590 ' #08974   #08974 /0 /.0.08 6:0:3..43.43974.805:0/0807:3J3/./4   #08974    #08974 439..792F9.7.7.    #08974 #08974-./70. .

20394 3/./03.84.84.:3.7.0714 08-47/.3/07.O3.8 /0 ..3/07.8843 O  .   %7.O3/.20394  48 -98 /0 708974/0-.74574..17. .87089..8:2.70.90708 89E.8 /0 .. 2E6:3.792F9.4308 .7.381070 /.4308 .. 0 88902.7.8  $7.0 1:0390  8 706:07/4 5. .:3...:9.08.8O3...43./70../47 00.97089.8    #08974 $  #08974 J3/.0 5.08 5.4507.8 573...8 4507.708974$    #08974   #08974 /08934  8 706:07/4 5.035./4 .0  $7. /0 . 3/.5.43...87.08./03. ..4308 /0 2:95.43 ./4./4.20394/0:3-9/047/03.7.43.90708 89E..    2./45.$  03 4507.3/08  #089748 3/.948 03970 8J 2824  48 88902.43 .0/08-47/.7.8 /0 ./4 /0 574.203943/0..708974$  #08974/0-.425:9.7..7.7..7 0 089..8 4507.94/085:F8 /0:3.  0 708:9.9:.

 03.7  2:95.01:4/05747.83897:.4308 6:0 80 0 /.J4/0.424 8:2.4 3. 5700.00.  O 09..5.8 82508  . 2: -. 3897:.7.7  7089.3897:.. ...43974.9:7.703.20247.:9.4308 O.425:9...O3.3897:.O3/08/0.$    00.O3/0.3 ./7   ./47 ...81..20/.. .:.3/4 4507../0./0.0 70.3903897:.808 O !7009.7 4 /.2.4308805:0/070./47. .430882508  .573..4/1.

O 0. /0 48 708:9.4/1.7 /090723.4308 .8/0089.O3/0.:.9:7.43/893948/85489.:.O3 .08.08.08.76:F3897:.703../47  08 /0.3/48 848.07  O 0.7  80 5:0/03574/:..8.O3 08/0.6:0724203943/0503/039020390/046:0089F.82E6:3./46:00.3./04507.4308 O 39077:5./.-40574.O3 /0 574.20394  O 8.8 . 00.3946:F80/0-0 .20394/0.:. 20247.8.0384309073.3./48 03 .. 573.:8.70 89.5..!&03 080 2420394 ..203:/48:003089.7/.743.7 ..  O 0.79:7. .8J3.03/4./47.574.8. 4 03 48 7089748   %548/039077:5..8 843 .86:04574/:.48/0..O3085479..3897:..

8 0397...9.2-.05.839077:5.-07.7.370897480850./45:0/0.  O 3-.743..20390.3450729/. 573..9:7..3/48( .:. /893948 3.848030/08.O3/0574.O/42E6:3.7...8/05747/.O3  O 3-. 0894 -.:9.O3/05747.0 /89394  24/1.8 /0 089.-0. 09.43/090320394./482E8.4 80 5:0/03 /08./6:0 .54 /0 .. 7:93.7.:.43 3-7 0 -9 /0 708974 /0 1.:.$  O 39077:5.( 4507.6:0030802420394089.-9.803903. /0 807.:9..03/01472..4308 /0 4507.4308.3/4 :3.O3/039077:5../ O 39077:5.424 .2. 13.20394 0.O3.7 94/.43086:0903. :3 3.48 03 0802420394 $05:0/0.8 /0/.803/400..4308 O 08...4308 82:9E30.80N.8 4 90303 5476:0 4.2-.8 9.-.3570/0.80306:0.7.9.8 39077:5.43088419. 80 0250. /.008 /0 5747/..3.3.:9./ /0 39077:5.4.8J3..45470:8:.:8.780880.O3 5./.-9. .8   /.8 .74 O 08.9.7.0/05747.8..548.84.:942E9.3/4 8: ..084. /090723.9.O300.9030.08. 4 .89.0/0497.43903/4 54/0248 089.9.84.:777 /0 2.8  O 39077:5./:.4308 5.O3/05747. 5:0/0807/02.4308$0/08.00.8:03900897:.#$6:080 089E00.!& 472.7 /0 1472. 800.754705747.:3.4308$43...3 203475747/.00.7844 . 425.:.08 ..08/03423.8 39077:5./47   ..42039.2.7 ..7.839077:5.-0 439.008 089E3 ./..2..86:080574/:.:34/08:8-98/0391.4 ./.39454/7J.3/..O3 /947/090948   %7.307. #$  . 82:9E30./47   439.7.. 8 34 6:0 80 701070.O3/039077:5..3/4:3.  O $8902../47 39F757090 038.O38:.6:003:32420394/.8 /0 3:0..-9.3/4030802420394 O 08..839077:5.8 80 089E 574.:5..4308 O 424 0248 /./039077:5./403./47 .430820397.7040../4./47   .:3.8 39077:5.282.7./.97.O3/020247./. 00...4308 8:003 807 70..O3( 4507.880089E97.3.748(  $##  !# #$ !.2. /05747.307.7744 97.08.2..4308 .. .07 6:0 3. ./475479.4 /0 39077:5.  096:09.-9./:.6:0..J30.4308 34 50729/.8O3547 0/08-47/..9.

  '071./47  .20394/05747. 05:7.2..O3/01:3..43.