UNIVERSIDAD NACIONAL DE INGENIERIA

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

Download "UNIVERSIDAD NACIONAL DE INGENIERIA"

Transcripción

1 UNIVERSIDAD NACIONAL DE INGENIERIA RECINTO UNIVERSITARIO SIMON BOLIVAR Facultad de Electrotecnia y Computación Departamento de Arquitectura y Sistemas Folleto de Arquitectura de Máquinas Computadoras II Curso 2013 Folleto adicional de Ensamblador: Programando la Computadora basada en P8086 Preparado por: Profesor José Díaz Chow Managua, Noviembre de 2013

2 Folleto de Arquitectura de Máquinas Computadoras II Copyright, Xdc, Universidad Nacional de Ingeniería. Departamento de Arquitectura y Sistemas, Facultad de Electrotecnia y Computación. Elaborado Agosto Actualizado Noviembre de 2013.

3 INDICE DE CONTENIDO 3. LA COMPUTADORA BASADA EN MICROPROCESA-DOR IX ESTRUCTURA FÍSICA DE LA PC Dentro de la caja de la PC ARQUITECTURA DE BUSES EL ENTORNO DE PROCESAMIENTO Organización Modelo de Memoria Registros del CPU y su uso Modos de direccionamiento El Conjunto de Instrucciones Listado general de instrucciones: Listado más detallado: Los servicios de la ROM BIOS El lenguaje ensamblador LOS CHIPS DE APOYO El temporizador del sistema El controlador de DMA El Controlador programable de Interrupciones (PIC) LA ENTRADA Y SALIDA ESTÁNDAR El video de la PC La pantalla Procesamiento básico de pantalla La entrada estándar de la PC Procesamiento básico de teclado Las interfaces estándares de la PC EL SUBSISTEMA DE ALMACENAMIENTO La geometría del Disco Estructura lógica del disco según DOS El sistema de archivos de DOS Acceso a archivos Ejemplo1: Crear y escribir en archivo Ejemplo2: Abrir y leer un archivo existente PROGRAMACIÓN EN ENSAMBLADOR CON MACROS Definición de macro Macros con parámetros Uso anidado de macros Directiva LOCAL Directivas Include y PURGE...43

4

5 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I 3. LA COMPUTADORA BASADA EN MICROPROCESA- DOR ix86 Desde 1981, con la introducción de la IBM PC original, basada en 8088, la computadora personal basada en microprocesadores de la familia ix86 o compatibles se han posicionado de manera irrefutable como líder en este sector del mercado. Para bien o para mal, estas máquinas son las disponibles en nuestro entorno y se han ganado el ser nuestro caso de estudio en este curso. En esta unidad nos enfocaremos en el estudio tanto de la estructura física, organización y arquitectura de estas máquinas como del lenguaje ensamblador de sus microprocesadores con el objetivo de propiciar una comprensión más íntima de las particularidades arquitecturales de estas máquinas, porque estamos convencidos que existe una estrecha relación indisoluble entre el hardware y el software, misma que nos sirve de base en nuestra tarea académica en este curso. 3.1 Estructura física de la PC. La Computadora basada en microprocesador ix86, no ha cambiado mucho de aspecto físico desde sus raíces con la introducción de la PC original en Si inspeccionamos una configuración típica podemos identificar la misma estructura de siempre: Una unidad central o principal (a menudo erróneamente llamada CPU), a la que se conectan una serie de periféricos, de los cuales, el monitor (unidad predeterminada de salida) y el teclado (unidad predeterminada de entrada) son infaltables. Tenemos además otros dispositivos bastantes populares como la impresora, el ratón o apuntador y los parlantes. La unidad principal, que se puede encontrar en varios factores de forma o configuraciones (disposición horizontal o desktop, vertical o torre y una serie de subvariantes de las anteriores), contiene normalmente otros periféricos e interfaces disponibles al exterior en su superficie, como la unidad de disquetes, la unidad de CD- ROM (que si se pronuncia en inglés debe sonar cidi rom, no cidi rum) y las interfaces estándares de entrada/salida como los puertos paralelos, seriales y usb. El 12 de agosto de 1981, IBM presentó el IBM PC original que estaba basado en el microprocesador 8088, de 16 bits, aunque su bus externo era de 8, manteniendo así compatibilidad con la mayoría de aplicaciones hardware de la época. Este PC solo tenía 256Kbytes de RAM y no tenía disco duro, solo una unidad de casete y una de disquete de 5¼ de 160/180 Kbytes, dependiendo del modelo. El bus de expansión del sistema (ISA) permitía insertar tarjetas controladoras de E/S de 8 bits, logrando hacer el sistema abierto en cuanto a los dispositivos de E/S que se podrían conectar a él. Prof. José Díaz Chow Página 1

6 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O En 1983 apareció el IBM PC-XT, basada en un 8086, con un bus de datos de 16 bits. Esta traía como novedad un disco duro de 10 Mbytes y hasta 640Kbytes de RAM. Un año más tarde aparecería el IBM PC-AT, introduciendo el microprocesador 286, así como ranuras de expansión de 16 bits (el bus ISA de 16 bits) en contraposición con las de 8 bits del PC y el XT (bus ISA de 8 bits), además incorporaba un disco duro de 20 Mbytes y disquetes de 5¼ pero con formato de 1.2 Mbytes. En general, todos los equipos con procesador 286 o superior pueden catalogarse dentro de la categoría AT; el término XT hace referencia al 8088/8086 y similares. Es necesario notar, sin embargo que con la especificación ATX, muchas PCs modernas, deberían llamarse ATX y no AT (Esta especificación fue implementada más o menos con los últimos Pentium MMX de 233MHz y a partir de los PII) Dentro de la caja de la PC Dentro de la caja de la PC original, se podía identificar en el centro, la placa base o tarjeta madre, componente esencial que provee la estructura de interconexión para los tres subsistemas y los chips de apoyo de la computadora. Además de la placa base, podemos identificar algunos periféricos internos como los discos duros que proveen almacenamiento masivo, así como las tarjetas de expansión del sistema donde se encuentran los módulos de entrada salida para una serie de funciones de soporte como el vídeo, los discos y las interfaces estándares (COM y LPT). Un speaker de audio interno, también era integrado a la unidad (no confundir con los modernos sistemas multimedia actuales). No podemos obviar finalmente, la alimentación de energía eléctrica que es provista por una fuente de poder especializada. La placa base contiene tanto el subsistema de procesamiento, como el de memoria y la parte central del sistema de entrada/salida, que es extensible mediante el bus de expansión, que en la PC original era el ISA. Haciendo un recuento rápido: El procesador Intel 8088 Un socket para el coprocesador matemático 8087 Sockets para hasta 256K de RAM Hasta 48 Kbytes de ROM del sistema Un temporizador del sistema o contador Un controlador programable de interrupciones 8259A Un controlador de DMA Un expansor de puerto paralelo PPI 8255A que se empleaba para la configuración del sistema mediante jumpers. Audio Speaker El sistema de memoria principal consistía en 16 KBytes de memoria ampliables a 64 mediante zócalos en la placa base (y a 256 añadiendo tarjetas). La configuración típica Página 2 Prof. José Díaz Chow

7 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I permitía la instalación de hasta 4 bancos de 64KBytes formados por 9 chips de 64 Kbit. EL noveno chip implementaba el bit de paridad. En el mapa de memoria esta se localiza en la parte baja desde la 00000H-3FFFFH. La memoria principal se implementó con memoria dinámica que requerían refrescamiento cada 2ms máximo. El ciclo de refrescamiento de la RAM fue implementado por el chip de DMA (8237-5) a intervalos especificados por el timer (8253-5) cada 15.2 s. El procesador es puesto en estado de espera (wait state) durante el ciclo de refrescamiento, lo cual podía reducir un poco la productividad del Adicionalmente, se tenían hasta 48 KB de memoria ROM para software del sistema. Este ROM se implementaba en chips de 8KBytes localizados en la parte alta del mapa de memoria en el rango desde F4000H al FFFFFH. Los 40K más altos contienen código que implementa: Un intérprete de BASIC El Power on self-test (POST). Los drivers de E/S standard El cargador del sistema o puntero al arranque (bootstrap loader) Los patrones de caracteres FF Interrupt Vectors: CPU, IRQ, DOS, BIOS Cold System Boot (ALT+CTRL+DEL) 0F0000 0FFFFF ROM - BIOS (routines) Warm System Boot (Reset) Figura 1. Mapa simple de memoria del 8088 El almacenamiento externo se hacía inicialmente en cintas de casete, aunque pronto aparecieron las unidades de disco de 5¼ pulgadas y simple cara (160/180 Kb por disco) o doble cara (320/360 Kb). Con la XT aparece el disco duro integrado en la PC. Con la AT se amplían los formatos de disquete (720K, 1.2 M y 1.44M), apareciendo además, la unidad de 3½ y discos con capacidades de 20 MB. Prof. José Díaz Chow Página 3

8 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O Arquitectura de buses. La estructura de interconexión entre los subsistemas de la PC se implementa mediante buses. Desde la PC original donde el bus del sistema podía ser accedido directamente mediante las ranuras de expansión, hasta nuestra fecha donde se ha implementado toda una jerarquía de buses. El bus del sistema o bus local permite la interconexión del procesador con la memoria y los chips de apoyo que administran el sistema de entrada-salida. Este se compone de tres conjuntos de líneas lógicas bien diferenciadas: el bus de datos, el bus de direcciones y el conjunto de líneas de control. Adicionalmente, podemos mencionar las líneas de suministro de corriente que normalmente se encuentran entre las líneas de los buses de expansión. CPU Bus del Sistema Sistema de Memoria Bus de Dirección Bus de Control Sistema de E/S CPU Memoria Entrada/Salida Bus de Dato Buses del sistema Además del bus local, mediante un controlador de bus, la PC provee un bus de expansión donde se pueden insertar tarjetas controladoras de dispositivos periféricos que permite extender las capacidades de comunicación de la PC. La PC original introdujo el bus de expansión ISA de 8 bits. La AT extendió este bus a 16 bits CPU Bus del Sistema Memoria Controlador de bus Bus de Expansión estándar (ISA, EISA o MC) Controlador de Vídeo Controlador de Disco Puerto Serie y Paralelo Slot Slot Bus de expansión el las primeras PCs Con las mejoras en la tecnología de buses introducidas por Intel en 1993 con el bus PCI, se logran mayores anchos de banda. La PC ahora establece una jerarquización de buses. Los dispositivos de alta velocidad se conectan al PCI y los de baja velocidad a un bus ISA. El PCI se conecta con el bus local facilita mediante el North bridge del chipset. Existe otro puente de interface (south bridge) que enlaza el bus PCI con el bus de periféricos ISA. Página 4 Prof. José Díaz Chow

9 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I CPU + Cache L1 Cache L2 Controlador de vídeo "Bus" AGP Controladores del sistema (Chipset) Controlador de Memoria y Puente PCI Bus del Sistema Memoria Principal Bus PCI Dispositivos IDE SCSI LAN Slot CD DD DD DD Controlador IDE Controlador de DMA Puente PCI a ISA USB Bus ISA Slot Slot LPT Com 1 Com 2 Super I/O Disquete Teclado Ratón PS/2 Arquitectura de Buses de las PC modernas Prof. José Díaz Chow Página 5

10 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O El entorno de procesamiento Como es más que obvio, estas máquinas se basan en un procesador de la familia x86 de Intel. Podemos decir que la familia de arquitecturas de Intel x86, tiene dos generaciones bien diferenciadas: la arquitectura de 16 bits que es la generadora de la familia y la arquitectura de 32 bits, más moderna y versátil. La familia nace con el lanzamiento del microprocesador 8086 y su primo Ambos idénticos en su arquitectura de 16 bits pero diferentes en su interfaz de bus. (el 8088 tenía una ruta de 8 bits para guardar compatibilidad con su predecesor 8080). Sorprendentemente, esta familia de procesadores que dan soporte a la IBM PC y compatibles desde su introducción en 1981 hasta hoy día, guardan compatibilidad en arquitectura hacia atrás. La tabla a continuación muestra la evolución de estos CPUs en cuanto a tamaño de registros, Memoria que es capaz de direccionar y velocidad de cómputo. Procesador Tamaño Registros [bits] Ancho bus [bits] Memoria que direcciona Velocidad [MHz] MB MB MB MB MB 4.7, 8, GB 25, GB 33, 66, 100 Pentium, PRO, mmx GB Pentium II GB Pentium III GB 450 1,300 Pentium IV GB 1,300 3, Organización Intel organiza el Datapath de estos microprocesadores en dos unidades lógicas: La unidad de ejecución (EU) y la Unidad de Interfaz de Bus (BIU). La EU contiene a la ALU, los registros de propósito general y punteros así como el de banderas. Algunos autores defienden que también contiene a la unidad de control. La BIU contiene los registros de control de programa (PC) y direccionamiento segmentado, la lógica de acceso al bus y una cola de instrucciones (de 2 a 8 instrucciones según CPU). Página 6 Prof. José Díaz Chow

11 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I Figura 2. Organización básica del Modelo de Memoria La memoria principal a que acceden estos procesadores se compone en parte de RAM de lectura/escritura y ROM que contiene el software del sistema (Programa de configuración del sistema y la BIOS). El esquema básico de direccionamiento de la PC original, con arquitectura de 16 bits, permitía el acceso a 1MB de direcciones de memoria. Esta arquitectura estaba bastante relacionada con el sistema operativo MS-DOS que administraba las PC en esa época. La figura 2 muestra su mapa de memoria que integra 640KB de memoria RAM para ejecución de programas de usuario, denominada Memoria Convencional. El resto del 1MB, es denominada memoria alta o superior, aloja la ROM con un espacio de 64KB básicos para setup y 192KB para extensión y el BIOS. Prof. José Díaz Chow Página 7

12 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O Figura 3. Mapa de la memoria Un aspecto importante a considerar del sistema de memoria que manejan los 80x86 es el ordenamiento de bytes. Intel emplea para estos little endian, es decir que el byte menos significativo se almacena en la posición más baja, al inverso de cómo se ordenan a lo interno de los registros. (Big endian es al contrario: más significativo en posición más baja). La arquitectura de 16 bits implementa un modelo de memoria denominado segmentado, donde cada programa de usuario, reside en segmentos de memoria. Cada programa puede tener uno o más segmentos para datos, uno o más segmentos para código, otro para la pila y un extra segmento. La arquitectura de 32 bits, en cambio, emplea un modelo de memoria flan, donde cada programa de usuario tiene un espacio virtual de 32 GB de memoria. En el modelo de programación segmentado se emplean registros de base de segmento para llevar el control del inicio de cada segmento cargado en la memoria. Esto permite que los programas sean relocalizables. Se definen cuatro segmentos básicos: Uno para Datos, otro para Código, uno para Pila (stack) y otro extra. Los registros base para éstos son: DS, CS; SS y ES respectivamente. Las direcciones físicas de memoria de 1MB (20 bits) se obtienen mediante un modo de direccionamiento desplazado, donde el registro base del segmento se desplaza 4 posiciones a la derecha y luego se suma al valor del desplazamiento para obtener la dirección física de 20 bits. Por ejemplo, suponga que el DS tiene 045FH y el desplazamiento para el dato X es 32H, entonces, DS se desplaza 4 posiciones volviéndose su contenido 045F0H a lo que se suma el 32H para obtener 04622H. Página 8 Prof. José Díaz Chow

13 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I Es importante recordar que el modelo de programación del 8086 es segmentado y que el modo [dirección] que podríamos considerar como absoluto (porque definimos directamente la dirección de memoria a la que queremos acceder) se refiere a una dirección que implícitamente está desplazada. Por ejemplo, basándonos en el caso del párrafo anterior, la instrucción MOVE AX, [0032] carga en el registro AX el valor de M(DS:32). La figura 3 muestra comparativamente la evolución de los micros de la familia Intel x86 de 16 y 32 bits respecto a sus modelos de memoria: Micros de 16bits Micros de 32bits 8088 Bus externo de 8 bits Pentium Pro PII PIII PIV P5 MMX (P6) Bus de datos de 16 bits Modo Real o Segmentado Bus de datos de 32 bits Modelo FLAT Bus externo de datos de 64 Bits Figura 4. Procesadores de la familia ix Registros del CPU y su uso Los procesadores ix86 poseen diversos registros. En dependencia de su generación, estos registros pueden ser de 16 o 32 bits. La mayoría de ellos, sin embargo, puede accederse en campos de bits de 8 y 16. Según su uso o función, los podemos clasificar en diferentes grupos: Registros de propósito general (GPRs) o de datos: Estos registros sirven para las operaciones regulares de programación, aunque intel propone una función para cada uno de ellos, como veremos más adelante. Desde su introducción y por asuntos de compatibilidad con el modo byte tan difundido en esa época, los registros de propósito general se pueden acceder en subgrupos o campos de bits de 8, 16 o 32 bits según se requiera. Si su denominación tiene como prefijo E, significa que el registro pertenece a un procesador de 32 bits y nos estamos refiriendo a todos los 32 bits del registro, Sin prefijo y con sufijo X, indica que el registro es de 16 bits o nos referimos a la porción menos significativa de 16 bits de un registro de 32. Finalmente, estos 16 bits menos significativos se pueden acceder como dos registros por separado, referenciando en uno a la parte alta Prof. José Díaz Chow Página 9

14 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O (sufijo H) y en el otro a la baja (sufijo L), cada una de 8 bits. Por ejemplo, el registro EAX es el acumulador de 32 bits. Sus 16 bits menos significativos se denominan AX, quien a su vez se divide en AH y AL. Los registros de propósito general de la familia son; o AX (EAX, AX, AH, AL): Acumulador. Es el registro principal, utilizado en la mayoría de operaciones binarias. Además se emplea de manera implícita en algunas instrucciones de multiplicación y división y en algunas instrucciones aritméticas especializadas, así como en ciertas operaciones de carácter específico como entrada, salida y traducción. o BX (EBX, BX, BH, BL): Registro Base. Usado como registro base para referenciar direcciones de memoria con direccionamiento indirecto, manteniendo la dirección de la base o comienzo de tablas o matrices. De esta manera, no es preciso indicar una posición de memoria fija, BX. o CX (ECX, CX, CH, CL): Contador. Se utiliza comúnmente como contador en bucles y operaciones repetitivas de manejo de cadenas. En las instrucciones de desplazamiento y rotación se utiliza como contador de 8 bits. o DX (EDX, DX, DH, DL): Datos. Este registro sirve como almacén auxiliar de datos y en conjunción con AX. Cabe mencionar que los registros AX-DX, EAX-EDX así como BX-CX, EBX- ECX se concatenan en algunas instrucciones específicas para obtener operandos o resultados del doble del tamaño de cada uno de ellos. REGISTROS DE PUNTEROS: o SP: Stack Pointer. Mantiene la dirección tope del elemento de pila. o BP:Base Pointer. Registro auxiliar en cálculos de la Pila. REGISTROS DE INDICE: o SI: Source Index. Utilizado como registro de índice en ciertos modos de direccionamiento indirecto, también se emplea para guardar un valor de desplazamiento en operaciones de cadenas. o DI: Destination Index. Se usa en determinados modos de direccionamiento indirecto y para almacenar un desplazamiento en operaciones con cadenas. REGISTROS DE SEGMENTO: Son aquellos registros que apuntan al inicio de un segmento. o CS: Segmento de código. o DS: Segmento de Datos. o SS: Puntero que señala el inicio de segmento de pila. Página 10 Prof. José Díaz Chow

15 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I o ES (Extra Segment): Segmento de ampliación para zona de datos. Es extraordinariamente útil actuando en conjunción con DS, con ambos se puede definir dos zonas de 64 Kb, tan alejadas como se desee en el espacio de direcciones, entre las que se pueden intercambiar datos. REGISTROS DE INSTRUCCIONES: o IP: Lleva la dirección de la próxima instrucción dentro del segmento. o IR: Mantiene la instrucción en ejecución. REGISTRO DE ESTADO O DE INDICADORES (flags). Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas situaciones durante la ejecución de un programa. Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición, que reflejan los resultados de operaciones del programa; los bits del 8 al 10 son indicadores de control y el resto no se utilizan. Estos indicadores pueden ser comprobados por las instrucciones de salto condicional, lo que permite variar el flujo secuencial del programa según el resultado de las operaciones OF DF IF TF SF ZF AF PF CF CF (Carry Flag): Indicador de acarreo. Su valor más habitual es lo que nos llevamos en una suma o resta. OF (Overflow Flag): Indicador de desbordamiento. Indica que el resultado de una operación no cabe en el tamaño del operando destino. ZF (Zero Flag): Indicador de resultado 0 o comparación igual. SF (Sign Flag): Indicador de resultado o comparación negativa. PF (Parity Flag): Indicador de paridad. Se activa tras algunas operaciones aritmético-lógicas para indicar que el número de bits a uno resultante es par. AF (Auxiliary Flag): Para ajuste en operaciones BCD. DF (Direction Flag): Indicador de dirección. Manipulando bloques de memoria, indica el sentido de avance (ascendente/descendente). IF (Interrupt Flag): Indicador de interrupciones: puesto a 1 están permitidas. TF (Trap Flag): Indicador de atrape (ejecución paso a paso). Prof. José Díaz Chow Página 11

16 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O Modos de direccionamiento En ensamblador de la familia 80x86, tenemos los modos básicos de direccionamiento inmediato, directo de registro y directo de memoria. En este último modo es necesario especificar que dado el modelo segmentado del 8086, las variables deben ser relocalizables en cualquier segmento de memoria en que se carguen, por tanto, el directo de memoria con que trata el programador normalmente es en realidad una modo desplazado relativo al segmento de datos activo en el momento. Por ejemplo,.data mem8 db 25.code... move al, mem8 En este caso, mem8 representa una variable de memoria relocalizable. Suponga que mem8 inicia a partir del byte 18 del segmento de datos, entonces mem8 equivaldría a escribir [18] y su dirección absoluta sería en realidad CS:18, es decir: CS << Usted puede especificar una dirección efectivamente absoluta, si es preciso, especificando el registro de segmento a considerar de la forma Registro de Segmento: Desplazamiento, como se muestra: Move ax, ES:bx Existe también una serie de modos complejos muy poderosos. Tenemos el modo indirecto de registro: Move ax, [bx], muy utilizado. En este caso nótese que los corchetes en ensamblador ix86 se denominan especificadores de índice y representan una referencia a memoria o indirección. Tenemos también una serie de modos desplazados: base-desplazamiento, indizados, baseíndice y los base-índice con escalación. Normalmente los registros BP, BX se llaman registros base y SI y DI registros de índice. Un modo base, parte de un registro base + un desplazamiento inmediato. Un modo indizado, parte de una dirección base + un registro de índice opcional + un desplazamiento inmediato opcional. El modo base-índice parte de una dirección base + un registro de índice + un desplazamiento inmediato opcional y el modo con escalación, que está disponible solo en arquitectura de 32 bits, permite una dirección generada a partir de un registro base o general + un registro de índice que puede estar escalado, es decir multiplicado por un factor (0, 1, 2, 4 u 8) + un desplazamiento opcional. Ejemplos: base: [bx+4], BX[4] Indice: TABLA [2], [TABLA+2], TABLA[DI] b-i: Tabla[bx][di] escalado: [BX+DI*4+2] Página 12 Prof. José Díaz Chow

17 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I El Conjunto de Instrucciones Listado general de instrucciones: Aritméticas Lógicas ADD: Suma binaria. ADC: Suma con acarreo. INC: Incremento en uno. SUB: Resta binaria. SUBB: Resta con el bit prestado. DEC: Decremento en uno. MUL: Multiplicación. IMUL: Multiplicación con signo. DIV: División entera. IDIV: División entera con signo NEG: Negación aritmética. AND: Y lógica. NOT: Negación lógica. OR: O lógica. XOR: O Exclusiva lógica. Corrimiento de bits RCL: Rotación a izquierda con acarreo. RCR: Rotación a derecha con acarreo. ROL: Rotación a izquierda. ROR: Rotación a derecha. SAL: Corrimiento aritmético a izquierda. SAR: Corrimiento aritmético a derecha. SHL: Corrimiento lógico a izquierda. SHR: Corrimiento lógico a derecha. SHLD: Corrimiento lógico a izquierda en doble precisión. SHRD: Corrimiento lógico a derecha en doble precisión. Comparación CMP: Comparación CMPS: Comparación de cadenas de caracteres TEST: Verificación de bits BSF/BSR: Exploración de bits (32bits). BT/BTC/BTR/BTS: Prueba o test de bits (32 bits). Prof. José Díaz Chow Página 13

18 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O Conversión de Tipo CBW: Convierte byte a palabra. CDQ: Convierte palabra doble a cuádruiple. CWD: Convierte palabra a palabra doble. CWDE: Convierte palabra a palabra doble extendida. Conversión ASCII-BCD AAA: Ajuste ASCII después de sumar. AAD: Ajuste ASCII antes de dividir AAM: Ajuste ASCII después de multiplicar AAS: Ajuste ASCII después de restar. DAA: Ajuste decimal después de sumar. DAS: Ajuste decimal después de restar. Transferencia de datos MOV: Transfiere o copia datos enteros. MOVS: Transfiere cadenas de caracteres. MOVSX: Mueve con extensión de signo. MOVZX: Mueve con extensión de cero. LEA: Carga dirección efectiva. LDS: Carga el registro de segmento de datos. LES: Carga el registro de segmento extra. LSS: Carga el registro de segmento de pila. LODS: Carga una cadena. STOS: Almacena una cadena. XCHG: Intercambia el contenido de los operandos. XLAT: Traducción. Operaciones con la pila PUSH: Introduce un elemento a la pila. POP: Remueve un elemento de la pila. PUSHA: Introduce los GPR a la pila. POPA: Restaura los GPR desde la pila. Transferencia de Entrada-Salida IN: Lee desde un puerto E/S a un registro. OUT: Escribe a un puerto de E/S. Página 14 Prof. José Díaz Chow

19 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I Operaciones con banderas CLC: Limpiar acarreo. CLD: Limpiar dirección. CLI: Limpiar interrupción. STC: Establece la bandera de acarreo. STD: Establece la bandera de acarreo. STI: Establece la bandera de acarreo. CMC: Complementa acarreo. LAHF: Cargar banderas en AH. SAHF: Cargar AH en banderas. PUSHF: Introduce las banderas a la pila. POPF: Restaura banderas desde la pila. Operaciones con cadenas CMPS: Compara cadenas. LODS: Carga cadena. MOVS: Mueve una cadena. REP: Repite una cadena. REPE: Repite la cadena mientras sea igual a. REPZ: Repite la cadena mientras sea cero. REPNE: Repite la cadena mientras sea igual a. REPNZ: Repite la cadena mientras sea cero. SCAS: Explora una cadena. STOS: Almacena una cadena. Operaciones de control de programa CALL: Llamada a procedimiento. RET: Regreso de procedimiento. RETN/RETF: Regreso cercano / lejano. INT: Llamada a Interrupción. IRET: Regreso de la interrupción. INTO: Interrupción de desborde. JMP: Salto incondicional. JA/JNBE: Salta si mayor / No menor o igual. JAE/JNB: Salta si mayor o igual / No es menor. JB/JNAE: Salta si es menor / No es mayor o igual. JBE/JNA: Salta si es menor o igual / No es mayor. JC/JNC: Salta si hay acarreo / No hay acarreo JCXZ: Salta si CX es cero, JE/JZ: Salta si es igual / Es cero. JG/JNLE: Salta si es mayor / No es menor o igual. JGE/JNL: Salta si es mayor o igual / No es menor. Prof. José Díaz Chow Página 15

20 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O JL/JNGE: Salta si es menor / No es mayor o igual. JLE/JNG: Salta si es menor o igual / No mayor. JNE/JNZ: Salta si no es igual / No es cero. JNP/JPO: Salta si no hay paridad / Paridad es par. JO/JNO: Salta si hay desbordamiento / No hay desbordamiento. JP/JPE: Salta si hay paridad / Paridad es par. JS/JNS: Salta si el signo es negativo / Es positivo. Ciclos LOOP: Repetir el ciclo. LOOPE: Repetir mientras sea igual a. LOOPZ: Repetir mientras sea cero. LOOPNE: Repetir mientras no sea igual a. LOOPNZ: Repetir mientras no sea cero. Control del procesador ESC: Escape. HLT: Introduce en estado de detención. LOCK: Bloquea el bus. NOP: No operar. WAIT: Pone el procesador en estado de espera Listado más detallado: En la siguiente tabla se muestran encolumnados los Mnemónicos (como MOV), los operandos (como fuente, destino) y la descripción de la operación. Los operandos son combinaciones entre tipos (registro, memoria e inmediato) con los direccionamientos admitidos en cada instrucción. Las instrucciones IN y OUT admiten un cuarto tipo de operando: puertos de I/O, con direccionamiento registro o inmediato. MOV XCHG Instrucciones de movimientos de datos destino, fuente ;la única instrucción que utiliza todos los tipos de direccionamiento destino, fuente ;Intercambia los contenidos de destino y fuente XLAT tabla_fuente ;carga el registro AL con el byte direccionado por (BX+AL) LAHF ;carga las flags S, Z, A, P y C en AH SAHF LDS LES ;guarda AH en el registro de flags destino,fuente ;transfiere un puntero de 32 bits al registro DS y al registro destino destino,fuente ;transfiere un puntero de 32 bits al registro ES y al registro destino Página 16 Prof. José Díaz Chow

21 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I LEA destino,fuente ;transfiere el offset de fuente (una dirección) a destino (un registro) PUSH fuente ;guarda fuente en el stack (en la dirección SS:SP) POP destino ;recupera del stack (dirección SS:SP-1) y guarda en registro destino PUSHF ;almacena el registro de flags en/desde el stack POPF PUSHA POPA ;recupera el registro de flags en/desde el stack ; almacena los reg DI,SI,BP,SP,BX,DX,CX,AX en/desde el stack ;recupera los reg DI,SI,BP,SP,BX,DX,CX,AX en/desde el stack IN origen ;carga desde un puerto origen un byte o word en AL o AX OUT destino ;escribe Al o AX en el puerto destino (direccionamiento inmediato o DX) Las operaciones aritméticas ADD destino,fuente ;suma fuente + destino y guarda el resultado en destino ADC destino,fuente ;suma fuente + destino + Carry y guarda el resultado en destino SUB destino,fuente ;resta destino - fuente y guarda el resultado en destino SUB destino,fuente ;resta destino - fuente - Carry y guarda el resultado en destino MUL fuente ;multiplica AL o AX * fuente y guarda el resultado en DX:AX IMUL fuente ;igual que la anterior pero con numeros enteros con signo DIV fuente ;divide DX:AX / fuente y guarda cociente en AX y resto en DX IDIV fuente ;igual que la anterior pero con numeros enteros con signo AND destino,fuente ;opera destino AND fuente y guarda resultado en destino OR destino,fuente ;opera destino OR fuente y guarda el resultado en destino XOR destino,fuente ;opera destino XOR fuente y guarda el resultado en destino NOT destino ;el NOT cambia todos los 1 en 0 y los 0 en 1 de destino. NEG destino ;NEG realiza el complemento a 2 de destino INC destino ;Incremente en 1 el contenido de destino DEC destino ;Decrementa en 1 el contenido de destino DAA / DAS ;Efectúa el ajuste decimal en suma / resta del registro AL AAA/AAD/ AAM/AAS ;ajustan el registro AL a valor decimal desempaquetado (para aplicar en operaciones suma, resta, multiplicación y división) Instrucciones de rotación RCL destino,contador ;rota destino a través de carry a la izquierda contador veces RCR destino,contador ;rota destino a través de carry a la derecha contador veces ROL destino,contador ;rota destino a la izquierda contador veces ROR destino,contador ;rota destino a la derecha contador veces Prof. José Díaz Chow Página 17

22 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O SAL destino,contador ;desplaza destino a la izquierda contador veces y rellena con ceros SAR destino,contador ;desplaza destino a la derecha contador veces y rellena con bit SF SHR destino,contador ;desplaza destino a la derecha contador veces y rellena con ceros Instrucciones de comparación CMP destino,fuente ;compara fuente y destino. Modifica las flags V, Z, S, C, P y AC TEST destino,fuente ;AND entre fuente y destino. Ninguno de los operandos cambia. TEST modifica las mismas flags que CMP pero siempre deja a V = 0 y C = 0. Instrucciones de strings CMPS string_destino,string_fuente ;compara las dos cadenas de a bytes o words CMPSB string_destino,string_fuente ;origen y destino indicados por DS:SI y ES:DI (bytes) CMPSW string_destino,string_fuente ;origen y destino indicados por DS:SI y ES:DI (words) LODS string_fuente ;mueve un byte o una word desde fuente a AL o AX LODSB string_fuente ;origen indicado por DS:SI (mueve un byte a AL) LODSW string_fuente ;origen indicado por DS:SI (mueve una word a AX) STOS string_destino ;mueve un byte o una word al destino desde AL o AX STOSB string_destino ;destino indicado por ES:DI (mueve AL a un byte) STOSW string_destino ;destino indicado por ES:DI (mueve AX a una word) MOVS string_destino,string_fuente ;mueve un byte o word de fuente a destino MOVSB string_destino,string_fuente ;origen y destino indicados por DS:SI y ES:DI (un byte) MOVSW string_destino,string_fuente ;origen y destino indicados por DS:SI y ES:DI (una word) SCAS string_destino ;compara la cadena de destino con AL o AX SCASB string_destino ;destino indicado por ES:DI (compara AL con un byte) SCASW string_destino ;destino indicado por ES:DI (compara AX con una word) En todos los casos, si se utiliza el prefijo REP, la cantidad de elementos de la cadena a operar está dada por el contenido del registro CX, si no es un solo elemento de la cadena. A cada operación, CX es decrementado y SI y DI son incrementados o decrementados de acuerdo con el estado de la flag de dirección (Si D=0, se incrementan). El incremento o decremento de estos registros se hace de a uno si son operaciones de bytes o de a dos si son de a words. Para los casos en que se especifica el largo del operando con la B o W final, la string_destino está apuntada por ES:DI, la string_fuente está apuntada por DS:SI. Página 18 Prof. José Díaz Chow

23 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I Instrucciones de repetición LOOP offset ;decrementa CX. Si CX no es cero, salta a offset (IP = IP + offset) LOOPZ offset ;decrementa CX, Si CX <> 0 y Z = 1, salta a offset (IP = IP + offset) LOOPNZ offset ;decrementa CX, Si CX <> 0 y Z = 0, salta a offset (IP = IP + offset) Instrucciones de salto * Ver además el grupo REP en instrucciones de cadenas CALL destino ;llama a procedimiento. IP <-- offset de destino y CS <-- segmento de destino RET valor ;retorna desde un procedimiento (el inverso de CALL), valor es opcional INT número ;llamado a interrupción. CS:IP <-- vector de INT.Las flags se guardan en el stack INTO IRET ;llama a la INT 4 si la flag de overflow (V) está en 1 cuando se ejecuta la instrucción ;retorna de interrupción al programa restaurando flags JMP dirección ;Salta incondicionalmente al lugar indicado por dirección JA offset ;salta a IP + offset si las flags C=0 Y Z=0 (salta si primer operando es mayor) JAE offset ;salta a IP + offset si la flag C=0 (salta si primer operando es mayor o igual) JB offset ;salta a IP + offset si las flags C=1 (salta si primer operando es menor)(igual a JC) JBE offset ;salta a IP + offset si las flags C=1 o Z=1 (salta si primer operando es menor o igual) JZ offset ;salta a IP + offset si las flags Z=1 (salta si primer operando es igual al segundo)(=je) JG offset ;salta a IP + offset si las flags S=V Y Z=0 (salta si primer operando es mayor) JGE offset ;salta a IP + offset si las flags S=V (salta si primer operando es mayor o igual) JL offset ;salta a IP + offset si las flags S<>V (salta si primer operando es menor) JLE offset ;salta a IP + offset si las flags S<>V o Z=1(salta si primer operando es menor o igual) JNC offset ;salta a IP + offset si la flag C=0 (salta si no hay carry) JNZ offset ;salta a IP + offset si la flag Z=0 (salta si no son iguales o no es cero) JNO offset ;salta a IP + offset si la flag V=0 (salta si no hay overflow) JNP offset ;salta a IP + offset si la flag P=0 (salta si no hay paridad -o la paridad es impar =JPO) JNS offset ;salta a IP + offset si la flag S=0 (salta si no hay hay bit de signo) JO offset ;salta a IP + offset si la flag V=1 (salta si hay desbordamiento -overflow) JP offset ;salta a IP + offset si la flag P=1 (salta si la paridad es par ) (=JPE) JS offset ;salta a IP + offset si la flag S=1 (salta si el signo es negativo) JCXZ offset ;salta a IP + offset si la flag CX=0 (salta si el registro CX es cero) Prof. José Díaz Chow Página 19

24 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O Las instrucciones de saltos por Above o Below se refieren entre dos valores sin signo (JA, JAE, JB y JBE), mientras que las Greater y Less se refieren a la relación entre dos valores con signo (JG, JGE, JL y JLE). Instrucciones que afectan flags CLC/CMC/STC ;pone a cero / complementa / pone en 1 la flag C (carry) CLD/STD ;pone a cero / uno la flag de dirección (D=0 hace que SI y DI se incrementen) CLI/STI ;deshabilita / habilita las interrupciones por hardware enmascarables Instrucciones misceláneas NOP CBW CWD HLT ;no-operación: el procesador pasa a la instrucción siguiente sin hacer nada ;convierte el byte de AL en palabra (AX), copiando el bit 7 a todo el registro AH ;convierte word en double-word, copiando bit 15 de AX a todo el registro DX ;el procesador se detiene hasta que llegue un Reset o una interrupción por hard Los servicios de la ROM BIOS Uno de los recursos más valiosos que asiste al programador de ensamblador de la PC son los servicios de la ROM BIOS. Estos servicios se refieren a una serie de rutinas de entrada salida (Basic Input Output Services) que se encuentran almacenadas en la memoria ROM del sistema. Estas rutinas permiten acceder y programar el hardware básico de la PC. Todos los servicios de la BIOS se invocan mediante interrupciones. Estos servicios pueden agruparse en cinco temas de acuerdo al objetivo. Cada tema contiene una serie de servicios organizados en torno a la estructura hardware o función que soportan, empleando una interrupción diferente para cada grupo de servicios, según muestra la tabla: Interrupción Hex Dec Uso Servicios de dispositivos periféricos 10H 16 Servicios de video 13H 19 Servicios de disco 14H 20 Servicios de comunicaciones seriales 15H 21 Servicios del sistema 16H 22 Servicios del teclado 17H 23 Servicios de impresión Servicios de estado del equipo 11H 17 Listado de equipamiento del sistema 12H 18 Tamaño de memoria Servicios de fecha y tiempo Página 20 Prof. José Díaz Chow

25 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I 1AH 26 Servicios de hora y fecha Servicio de impresión de pantalla 5H 5 Impresión de la pantalla Servicios especiales 18H 24 Activar la ROM Basic 19H 25 Activar rutina de arranque Llamadas al sistema operativo DOS: INT 21H Aunque el DOS reserva para su uso muchas interrupciones (desde la 20H hasta la 3FH), normalmente los servicios del sistema los proporciona a través de solo cinco de ellas: 20H, 21H, 25H, 26H y 27H. Interrupción Hex Dec Descripción 20H 32 Terminación de programa 21H 33 Servicios generales del DOS 25H 37 Lectura absoluta de disco 26H 38 Escritura absoluta en disco 27H 39 Terminar y quedar residente Para efectos de este curso nos centraremos en los servicios generales o interrupción 21H. La interrupción 21h, provee una serie de funciones. Para invocar a un servicio del DOS mediante la interrupción 21H, se establece el número de función en AH y el parámetro en AL. Por ejemplo: Equivale a: Mov ah, 4CH ; Función regresar al DOS Mov al, 0 ; Valor de retorno = 0, normal. Int 21H ; Llama al DOS. Mov ax, 4C00H ; Función regresar al DOS normalmente. Int 21H ; Llama al DOS. Un programa en lenguaje ensamblador está compuesto por una secuencia de sentencias. Estas sentencias representan tanto instrucciones del procesador como directivas o comandos al ensamblador El lenguaje ensamblador. El lenguaje ensamblador permite al programador a bajo nivel escribir código directamente interpretable por el CPU sin necesidad de conocer exactamente el lenguaje Prof. José Díaz Chow Página 21

26 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O de máquina. Un programa en ensamblador se compone por una secuencia de sentencias ensamblador. Una sentencia en ensamblador se estructura de la siguiente forma: [[nombre:]] [[operacion]] [[operandos]] [[;comentario]] Donde nombre: es un identificador de etiqueta de código, que es una referencia simbólica a la dirección de la instrucción y a la instrucción misma. El componente opcional operacion representa una instrucción del procesador o una directiva o comando del ensamblador. Los operandos representan los operandos de las instrucciones o parámetros de las directivas y finalmente, un comentario es una facilidad para documentar la sentencia e inicia con un punto y coma (;) y termina al final de la línea. Un identificador es un nombre que se asigna a una definición a fin de poder referirse a ella de forma única. Usamos identificadores para nombrar constantes, variables, procedimientos, segmentos, tipos de datos definidos por el usuario y etiquetas de código. Los identificadores pueden tener una longitud máxima de 247 caracteres. No pueden comenzar con un dígito y no pueden usarse como nombres las palabras reservadas. Aunque pueden usarse algunos caracteres especiales (como _ y $) es mejor evitarlos si no se requieren. Los operandos pueden expresarse en diferentes modos de direccionamiento, por ejemplo de forma inmediata o mediante el uso de contenedores (operandos en registros o en memoria). Existen diferentes tipos de datos, esncialmente Enteros. Por defecto estos tipos son: BYTE (8 bits), WORD (16 bits), DWORD (32 bits), QWORD (64 bits) y TBYTE (80 bits). Mediante la directiva Dx podemos definir variables de memoria de un tipo de datos x, donde x ( Mem8 db? ; Define la variable tipo byte sin inicialización). Se puede tratar secuencias de unidades de datos del mismo tipo como arreglos. Por ejemplo, se pueden tratar secuencias de bytes como cadenas. Página 22 Prof. José Díaz Chow

27 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I 3.4 Los Chips de Apoyo El temporizador del sistema El temporizador del sistema implementa las funciones de base de tiempo requeridas por la computadora para marcar el inicio del ciclo de refrescamiento de la memoria RAM y el contador de tiempo real de la máquina. El chip en realidad contiene 3 temporizadores internos accedidos mediante canales, cada uno con una función específica: Canal 0: Provee soporte para implementar el reloj de tiempo real, interrumpe al CPU cada 55ms. Canal 1: Apoya los ciclos de DMA. Está programado para solicitar una transferencia DMA cada 15.2 s. El DMA responde con un ciclo de refrescamiento de memoria. Canal 2: Soporte a la interfaz del disquete y el speaker de audio.se puede usar para grabar tonos en una tape o activar el speaker para implementar alarmas auditivas, música rudimentaria y otros sonidos. Note que a partir de la PC XT, se suprimió el soporte a disquete El controlador de DMA El controlador de DMA permite mejorar la velocidad de transferencia de datos desde los dispositivos de almacenamiento masivo hacia la memoria. Las transferencias por DMA en la PC original son al menos 4 veces más rápidas que las dirigidas por programas. El que se empleó en la PC original, tenía las siguientes características: Cuatro canales de DMA independientes Registros de direcciones y conteo de 16 bits Cuatro tipos de transferencia: MM, MIO, IOIO e IOM. Esquema de prioridades programable Condiciones de sincronización y terminación programables. En la IBM PC, sin embargo, se limitaba la flexibilidad del chip por cuanto las transferencias requerían ser entre M e IO. Además, dado que los registros de direcciones eran de 16 bits y no de 20, se requerían tres registros de 4 bits para completar las direcciones de 20 bits del Estos registros se denominaron de página. Un efecto limitante de esta característica fue que las trasferencias no se podían realizar entre fronteras de página que eran de 64KBytes cada una. Finalmente, en la PC el DMA Chip se programó en el modo de transferencia simple que obliga al controlador a liberar el bus del sistema después de cada transferencia, limitando la tasa de frecuencia máxima soportada a 422 khz. Prof. José Díaz Chow Página 23

28 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O Los canales del DMA en la IBM PC daban soporte a las siguientes tareas: Canal 0: Ciclos de refrescamiento de memoria. Canal 1: No usado. Canal 2: Soporte al disquete. Canal 3: Soporte al disco duro. La prioridad de cada canal es inversa a su identificación (Canal 0 es el de máxima prioridad) El Controlador programable de Interrupciones (PIC) El soporte a las interrupciones de la PC está dado por el 8086 a través de dos líneas de control: NMI e INTR. El pin NMI es disparado por flanco y normalmente se usa para notificar situaciones severas como fallo de memoria o de energía. INTR se emplea para las interrupciones del hardware regulares. Las interrupciones regulares pueden ser enmascaradas, es decir, deshabilitadas mediante el apagado de la bandera de interrupciones (instrucción CLI) y habilitadas encendiendo dicha bandera (STI). En la IBM PC, existen 3 fuentes para NMI: Error de paridad de Memoria, Error de paridad del canal de E/S y la interrupción del Para lidiar con las múltiples fuentes de INTR, se emplea el Controlador programable de interrupciones (PIC) en la PC. El 8259A es un chip que permite controlar por esquema de prioridades hasta 8 líneas de solicitud de interrupciones. En las PC AT ya se brinda soporte a 16 interrupciones mediante la característica de conexión en cascada del PIC. En la IBM PC, la IRQ 0 estaba asignada al reloj de tiempo real, la 1 al teclado, la 3 y 4 a los puertos de comunicación; la 5 al disco duro, la 6 al disquete y la 7 a la impresora. Nuevamente la mayor prioridad se aplica al IRQ de identificador menor. Bus de Direcciones/Datos/Control de la CPU INTA* INT INTA* INT Esclavo 8259A Control Master 8259A IRQ8 IRQ10 IRQ12 IRQ14 IRQ9 IRQ11 IRQ13 IRQ15 Bus ISA (AT) IRQ0 IRQ2 IRQ4 IRQ6 IRQ1 IRQ3 IRQ5 IRQ7 Organización de dos PIC en cascada en el sistema PC AT Página 24 Prof. José Díaz Chow

29 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I 3.5 La entrada y salida estándar El video de la PC El video en la PC se obtiene gracias a un adaptador gráfico que genera las señales de video y un monitor que las presenta en una pantalla. Existen básicamente dos modos generales de video en la PC: el Modo carácter o texto y el modo gráfico. En el contexto de este curso, solamente consideraremos el modo texto, a las funciones más básicas y simples de video La pantalla La pantalla de la PC en modo texto representa una matriz de caracteres organizados en filas y columnas. El modo de video de texto más conocido es el de 25 filas por 80 columnas. El primer carácter en la esquina superior izquierda de la pantalla tiene la posición fila 0, columna 0 (0,0). El carácter en la esquina inferior izquierda tiene la posición (24,0). El de la esquina superior derecha (0,79) y el de la inferior derecha es la (24, 79). La pantalla del monitor puede presentar los datos que se escriben en un buffer de video que es un área de memoria a la que tiene acceso el programador. Esta área de memoria de video está organizada en páginas, de la cual solo una se muestra a la vez. Esto que permite escribir varias pantallas de video directamente en memoria y luego intercambiar entre ellas para hacer cambios rápidos de contenido en la pantalla. Cada carácter pintado en la pantalla se representa por dos bytes en la memoria. Uno almacena los atributos de visualización y el otro el código ASCII del carácter. Los atributos pueden ser: Color de frente, color de fondo, intensidad y parpadeo Procesamiento básico de pantalla En este curso abordaremos brevemente las funciones más básicas de procesamiento en pantalla proporcionadas por algunas funciones de la interrupción 10H de la BIOS: Limpiar la pantalla, posicionar el cursor, pintar un carácter con y sin atributo. Finalmente estudiaremos como escribir una cadena completa mediante el servico 09H de la interrupción de servicios del sistema del DOS, int 21H. Prof. José Díaz Chow Página 25

30 A R Q U I T E C T U R A D E M Á Q U I N A S C O M P U T A D O R A S I I, C U R S O En términos generales, la Int 10H espera que la función a ejecutar se escriba en el registro AH y en AL los parámetros básicos. Si la cantidad de parámetros crece, emplea los otros registros generales para completarlos. Por ejemplo, BH y BL sirven regularmente para definir ya sea atributo en modo texto o el número de la página de video a afectar. CX y DX para coordenadas de la ventana (CH, CL: Fila, Columna de la esquina superior izquierda; DH, DL: Fila, Columna de la esquina inferior derecha). Borrar la pantalla La función 6H de la int 10H permite definir una ventana rectangular y deslizar su contenido. Esto puede emplearse para borrar la pantalla. El siguiente código limpia la pantalla completa: Mov ah, 06h ;Selecciona función Mov al, 00h ; Limpiar toda la ventana seleccionada Mov bh, 07h ; Blanco sobre negro. Mov cx, 0000h ; Esquina Sup. Izq: (0,0) Mov dx, 184fh ; Esquina Inf. Der: (24,79) Int 10H Posicionar el cursor La función 02h de la Int 10H del BIOS permite posicionar el cursor en la pantalla. Según lo acostumbrado de escribe en AH la función (Ah2h). En BH se escribe el número de página (por defecto 0), y en DH, DL, la Fila, Columna de la posición a establecer para el cursor. Mov ah, 02h ; Selecciona función Mov bh, 00h ; Página por defecto. Mov dh, 05 ; Posiciona el cursor en Mov dl, 12 ; la posición (5,12) Int 10H Escribir un carácter en la posición actual del cursor La función 09h de la Int 10H del BIOS permite escribir (y repetir) un carácter con un atributo determinado en la posicionar actual del cursor en la pantalla. La función 0Ah hace lo mismo pero sin considerar atributo (el carácter se escribe con el atributo actual). Como siempre, en AH se escribe la función (Ah09h 0Ah). En Al se pone el carácter a escribir. En BL se escribe el atributo de video y en CX, la cantidad de veces a escribir el carácter en pantalla. Mov ah, 09h ; Selecciona función escribe con atributo Mov al, A ; Escribir una A Mov bl, 14h ; Atributo de color rojo sobre azul. Mov cx, 01 ; Solo pintarla 1 vez Int 10H Página 26 Prof. José Díaz Chow

6-REGISTROS DEL 8086 Y DEL 80286

6-REGISTROS DEL 8086 Y DEL 80286 ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16

Más detalles

Intel 8086. Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini - 2001

Intel 8086. Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini - 2001 Intel 8086 Arquitectura Características generales Procesador de 16 bits Bus de direcciones de 20 bits : 1 Mbyte Bus de datos interno de 16 bits Bus de datos externo de 16 bits en el 8086 8 bits en el 8088

Más detalles

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005 Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento

Más detalles

La arquitectura del 8086/8088

La arquitectura del 8086/8088 Repasamos aquí la arquitectura de un PC. Para más información sobre lo aquí expuesto se puede consultar [PA01] y los capítulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatomía del PC A grandes rasgos,

Más detalles

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones: Ensamblador Interrupciones Definición: Una interrupción es el rompimiento en la secuencia de un programa para ejecutar un programa especial llamando una rutina de servicio cuya característica principal

Más detalles

REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086

REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086 REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086 INSTRUCCIONES DE TRANSFERENCIA: NINGUNA INSTRUCCIÓN DE TRANSFERENCIA AFECTA AL REGISTRO DE ESTADO (SALVO LAS EXPLÍCITAS CON EL REGISTRO DE ESTADO) A)

Más detalles

Los Microprocesadores MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Evolución Histórica de los Microprocesadores Intel Evolución de los microprocesadores Intel de la década de los 70 4004

Más detalles

Resumen de las instrucciones del 8086/8088

Resumen de las instrucciones del 8086/8088 Resumen de las instrucciones del 8086/8088 En este capítulo se hace un resumen de las instrucciones del 8086/8088. Estas instrucciones se encuentran explicadas más detalladamente en otro capítulo. Se puede

Más detalles

INTRODUCCIÓN. Interrupciones.

INTRODUCCIÓN. Interrupciones. Interrupciones. INTRODUCCIÓN Una interrupción es la ocurrencia de un evento o condición la cuál causa una suspensión temporal del programa mientras la condición es atendida por otro subprograma. Una interrupción

Más detalles

Departamento de Sistemas e Informática

Departamento de Sistemas e Informática Departamento de Sistemas e Informática Programación en Assembler - Clase 1 Digital II Presentación de Docentes y Material Docentes: Ing. Andrés Capalbo Ing. Diego Alegrechi Ing. Esteban Almirón Material

Más detalles

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES. 1.- a) Explica qué es un bit de información. Qué es el lenguaje binario? Bit es la abreviatura de Binary digit. (Dígito binario). Un bit es un dígito del lenguaje binario que es el lenguaje universal usado

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software. ARQUITECTURA DE LAS COMPUTADORAS QUE ES UNA COMPUTADORA (UN ORDENADOR)? Existen numerosas definiciones de una computadora, entre ellas las siguientes: 1) Una computadora es un dispositivo capaz de realizar

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Entorno de Ejecución del Procesador Intel Pentium

Entorno de Ejecución del Procesador Intel Pentium Arquitectura de Ordenadores Arquitectura del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Entorno de Ejecución del Procesador

Más detalles

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Memoria Típica. Los datos almacenados en memoria tienen que pasar, en un momento

Más detalles

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A Tres tipos de interrupciones: Internas (TRAPS) Externas (HARDWARE) Software Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset... 0000:0008

Más detalles

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes: Facultad de Ciencias Exactas y Naturales y Agrimensura Departamento de Ingeniería Cátedra : Proyecto Final Apuntes : Microprocesadores Tema 6-1 : Esquema de un µp. La CPU Lo que definimos como CPU (Central

Más detalles

"Programación en Ensamblador del microprocesador Pentium (I)"

Programación en Ensamblador del microprocesador Pentium (I) PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de

Más detalles

Sistemas de Computadoras Índice

Sistemas de Computadoras Índice Sistemas de Computadoras Índice Concepto de Computadora Estructura de la Computadora Funcionamiento de la Computadora Historia de las Computadoras Montando una Computadora Computadora Un sistema de cómputo

Más detalles

picojava TM Características

picojava TM Características picojava TM Introducción El principal objetivo de Sun al introducir Java era poder intercambiar programas ejecutables Java entre computadoras de Internet y ejecutarlos sin modificación. Para poder transportar

Más detalles

Tarjeta Principal. Disco Duro. Memoria RAM. Procesador. Fuente de Poder. Tarjetas de Expansión. Jair Acosta Núñez

Tarjeta Principal. Disco Duro. Memoria RAM. Procesador. Fuente de Poder. Tarjetas de Expansión. Jair Acosta Núñez Tarjeta Principal Disco Duro Memoria RAM Procesador Fuente de Poder Tarjetas de Expansión Jair Acosta Núñez También se le puede llamar Board, Mainboard, MotherBoard y Tarjeta Madre. Es una tarjeta interna

Más detalles

Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos:

Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos: Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos: Unidad Central de proceso (CPU/UCP): Unidad que se encarga del control del ordenador, procesando para ello

Más detalles

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador Calculadora Descripción El objetivo de esta práctica es utilizar las interrupciones de BIOS y MSDOS para presentar una pequeña calculadora en pantalla. Se pretende programar una calculadora que opere en

Más detalles

Matemática de redes Representación binaria de datos Bits y bytes

Matemática de redes Representación binaria de datos Bits y bytes Matemática de redes Representación binaria de datos Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo pueden entender

Más detalles

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática

Más detalles

TEMA 1. CONCEPTO DE ORDENADOR: ESTRUCTURA Y FUNCIONAMIENTO

TEMA 1. CONCEPTO DE ORDENADOR: ESTRUCTURA Y FUNCIONAMIENTO TEMA 1. CONCEPTO DE ORDENADOR: ESTRUCTURA Y FUNCIONAMIENTO 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir

Más detalles

Arquitectura basica de un computador

Arquitectura basica de un computador Arquitectura basica de un computador Componentes o División básica de un computador Perifericos: Son todos los dispositivos de entrada (Input) y salida (Output): Monitor, Teclado, Ratón, Unidades de almacenamiento

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

Clase 20: Arquitectura Von Neuman

Clase 20: Arquitectura Von Neuman http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Arquitectura de una computadora Elementos básicos de una

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

... partes internas del computador!...

... partes internas del computador!... ... partes internas del computador!... LOS DISPOSITIVOS INTERNOS UNA PC EN SI, PUEDE "DAR SEÑALES DE VIDA" SIN EL TECLADO, SIN EL MONITOR, SIN EL RATÓN Y TODOS LOS DISPOSITIVOS EXTERNOS, AUNQUE NO TENDRÍA

Más detalles

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN PRÁCTICA DE LABORATORIO No I NOMBRE DE LA PRÁCTICA: COMANDOS BÁSICOS DE DEBUG( PARTE I) OBJETIVO: APRENDER LOS COMANDOS

Más detalles

CONJUNTO DE INSTRUCCIONES Microprocesador 8086

CONJUNTO DE INSTRUCCIONES Microprocesador 8086 CONJUNTO DE INSTRUCCIONES Microprocesador 8086 Clasificación: TRANSFERENCIA DE DATOS ARITMÉTICAS LÓGICAS TRANSFERENCIA DE CONTROL MANEJO DE CADENAS CONTROL DE MAQUINA ENTRADA/SALIDA El formato general

Más detalles

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador. PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar

Más detalles

CONJUNTO DE INSTRUCCIONES µp8086

CONJUNTO DE INSTRUCCIONES µp8086 CONJUNTO DE INSTRUCCIONES µp8086 Se llama INSTRUCCIÓN a las palabras reservadas ó MNEMÓNICOS en ensamblador, los cuales se traducen a lenguaje máquina para su posterior ejecución por parte de la CPU. Existen

Más detalles

DESCRIPCION DEL SITEMA MASTER.

DESCRIPCION DEL SITEMA MASTER. DESCRIPCION DEL SITEMA MASTER. ESTRUCTURA. El sistema MASTER (Sistema Modular para Control Adaptativo en Tiempo Real) se ha implementado en base a un computador compatible PC-AT, dotado de una tarjeta

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

CONCEPTOS INFORMÁTICOS BÁSICOS

CONCEPTOS INFORMÁTICOS BÁSICOS CONCEPTOS INFORMÁTICOS BÁSICOS Informática Def 1: Se define como la ciencia que estudia el tratamiento Def 2: Ciencia que estudia la de una forma lógica y racional, empleando para ello medios humanos,

Más detalles

TEMA 4. Unidades Funcionales del Computador

TEMA 4. Unidades Funcionales del Computador TEMA 4 Unidades Funcionales del Computador Álvarez, S., Bravo, S., Departamento de Informática y automática Universidad de Salamanca Introducción El elemento físico, electrónico o hardware de un sistema

Más detalles

HARDWARE DE UN ORDENADOR. Elementos básicos

HARDWARE DE UN ORDENADOR. Elementos básicos HARDWARE DE UN ORDENADOR Elementos básicos Componentes de un ordenador Hardware: todos los componentes físicos, tanto internos como externos: monitor, teclado, disco duro, memoria, etc. Software: todos

Más detalles

Introducción a la Entrada/Salida

Introducción a la Entrada/Salida Introducción a la Entrada/Salida Organización de entrada/salida La familia de procesadores 80x86, presente en el IBM PC, utiliza la arquitectura Von Neumann, que puede verse en la figura 1. El denominado

Más detalles

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: INTERRUPCIONES La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a)consultas (POLLING): Se comprueban cíclicamente,

Más detalles

PRUEBAS DE ACCESO A CICLOS FORMATIVOS DE GRADO SUPERIOR Convocatoria de 23 de junio de 2005 (Orden de 18 de febrero de 2005, BOA de 05/03/2005)

PRUEBAS DE ACCESO A CICLOS FORMATIVOS DE GRADO SUPERIOR Convocatoria de 23 de junio de 2005 (Orden de 18 de febrero de 2005, BOA de 05/03/2005) DATOS DEL ASPIRANTE Apellidos: Nombre: DNI: I.E.S. CALIFICACIÓN APTO NO APTO PRUEBAS DE ACCESO A CICLOS FORMATIVOS DE GRADO SUPERIOR Convocatoria de 23 de junio de 2005 (Orden de 18 de febrero de 2005,

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

Fig. 1: Tipos de datos que puede manejar el procesador

Fig. 1: Tipos de datos que puede manejar el procesador 1. Introducción 2. Registros internos 3. Almacenamiento de datos 4. Modos de direccionamiento 5. Juego de Instrucciones 6. Etiquetas, cometarios y directivas 7. Problemas 1. Introducción El lenguaje ensamblador

Más detalles

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1 MR. 316 Versión 1 Prueba Integral 1/5 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERIA MODELO DE RESPUESTA ASIGNATURA: MICROPROCESADORES CÓDIGO: 316 MOMENTO: INTEGRAL VERSIÓN: 01 FECHA

Más detalles

Taller de Operaciones Informáticas

Taller de Operaciones Informáticas Taller de Operaciones Informáticas Unidad 1: Componentes Físicos de un Sistema Informático 4- Qué es el motherboard? Identificar modelos, y elementos conectados sobre ella. Es la parte principal de una

Más detalles

TARJETA MADRE y sus PARTES

TARJETA MADRE y sus PARTES TARJETA MADRE y sus PARTES La tarjeta madre Es el componente principal de un computador personal. Debido a que todos los demás grupos de componentes y dispositivos periféricos son controlados a través

Más detalles

Arquitectura Von Neumann

Arquitectura Von Neumann Arquitectura Von Neumann Arquitectura Von Neumann Establecida en 1945 por Von Neumann Modelo básico de arquitectura utilizado en la mayoría de los computadores Su idea es la de conectar permanentemente

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8 Dpto. de ATC, Universidad de Sevilla - Página de Capítulo : INTRODUCCIÓN SISTEMAS DE REPRESENTACIÓN NUMÉRICA Introducción Bases de numeración Sistema decimal Sistema binario Sistema hexadecimal REPRESENTACIÓN

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Entrada/Salida. Polling e Interrupciones. Verano de 2011. Mariano Moscato. Organización del Computador 1

Entrada/Salida. Polling e Interrupciones. Verano de 2011. Mariano Moscato. Organización del Computador 1 Entrada/Salida Polling e Interrupciones Mariano Moscato Organización del Computador 1 Verano de 2011 El GuidoBot Robot docente Basado en tecnología ORGA1 tiene un procesador y una memoria ORGA1 Sus dispositivos

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores Ricardo.Sanz@upm.es Curso 2004-2005 Arquitectura de Computadores Arquitectura de computadores es la disciplina que estudia la organización y funcionamiento de los computadores

Más detalles

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA... 1 1. Representación interna de datos.... 1 1.2. Sistemas de numeración.... 2 1.3. Aritmética binaria...

Más detalles

Análisis general de un Microprocesador

Análisis general de un Microprocesador Análisis general de un Microprocesador Arquitectura del chip Repertorio de instrucciones Sistema mínimo Señales de control Función de cada pin del µp Herramientas de desarrollo Performance. ARQUITECTURA

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

Qué es una Tarjetas Madre? El Procesador. Partes de una tarjeta madre. Tarjetas madres

Qué es una Tarjetas Madre? El Procesador. Partes de una tarjeta madre. Tarjetas madres Tarjetas madres 1. Qué es una Tarjetas Madre? 2. El Procesador 3. Partes de una tarjeta madre 4. Modelo de tarjeta madre, fabricante, características generales e imagen Qué es una Tarjetas Madre? Una tarjeta

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Actividad 4: Comunicación entre PLC s vía Ethernet

Actividad 4: Comunicación entre PLC s vía Ethernet Actividad 4: Comunicación entre PLC s vía Ethernet 1.- Listado de materiales: PC con Tarjeta de red 3com o similar. 2 PLC Omrom CJ1M CPU11 ETN Estos autómatas llevan integrada la tarjeta de comunicaciones

Más detalles

El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar nueva información.

El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar nueva información. 0. INTRODUCCIÓN: El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar nueva información. Para llevar a cabo estas operaciones, el ordenador cuenta con una

Más detalles

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA I. INTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA 1.1. Informática Informática (Información Automática) es la ciencia y la técnica del tratamiento automatizado de la información mediante el uso de ordenadores.

Más detalles

Organización Básica de un Computador y Lenguaje de Máquina

Organización Básica de un Computador y Lenguaje de Máquina Organización Básica de un Computador y 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 Organización Básica

Más detalles

Tema I. Sistemas Numéricos y Códigos Binarios

Tema I. Sistemas Numéricos y Códigos Binarios Tema I. Sistemas Numéricos y Códigos Binarios Números binarios. Aritmética binaria. Números en complemento-2. Códigos binarios (BCD, alfanuméricos, etc) Números binarios El bit. Representación de datos

Más detalles

BUSES. Una comunicación compartida Un conjunto de cables para comunicar múltiples subsistemas. Memoria

BUSES. Una comunicación compartida Un conjunto de cables para comunicar múltiples subsistemas. Memoria BUSES UPCO ICAI Departamento de Electrónica y Automática 1 Qué es un bus? Una comunicación compartida Un conjunto de cables para comunicar múltiples subsistemas Procesador Control Datapath Memoria Entrada

Más detalles

Control Digital en PC con MS-DOS

Control Digital en PC con MS-DOS Control Digital en PC con MS-DOS Abel Alberto Cuadrado Vega 19 de abril de 2006 1. Introducción Un PC puede ser utilizado para realizar un sistema de control digital. Para ello necesita lo siguiente: tarjeta

Más detalles

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation. WINDOWS Windows, Es un Sistema Operativo. Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation. Dentro de los tipos de Software es un tipo de software de Sistemas. Windows

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

Más detalles

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 3DUWHGH(QVDPEODGRU 4º) Escribir un programa en ensamblador que pida un número de una cifra por teclado y saque como resultado

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS DE NUMERACIÓN. Sistema decimal SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",

Más detalles

HARDWARE DE UN ORDENADOR. 2. Cómo se llama a la parte de los ordenadores formada por los programas y las instrucciones para que funcione el ordenador?

HARDWARE DE UN ORDENADOR. 2. Cómo se llama a la parte de los ordenadores formada por los programas y las instrucciones para que funcione el ordenador? HARDWARE DE UN ORDENADOR 1. Cómo se llama la parte física de un ordenador? 2. Cómo se llama a la parte de los ordenadores formada por los programas y las instrucciones para que funcione el ordenador? 3.

Más detalles

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

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

Más detalles

WINDOWS 98/Me EL EXPLORADOR DE WINDOWS IV

WINDOWS 98/Me EL EXPLORADOR DE WINDOWS IV 10 EL EXPLORADOR DE WINDOWS IV Operaciones con discos Desde el Explorador, también puede ejecutar diversas operaciones sobre discos completos. Aunque, desde aquí, es posible formatear discos duros, lo

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

La informática es el conjunto de técnicas y conocimientos necesarios para el tratamiento automático de la información mediante el ordenador.

La informática es el conjunto de técnicas y conocimientos necesarios para el tratamiento automático de la información mediante el ordenador. Qué es la informática? La informática es el conjunto de técnicas y conocimientos necesarios para el tratamiento automático de la información mediante el ordenador. Se llama sistema informático al sistema

Más detalles

Anexo B. Comunicaciones entre mc y PC

Anexo B. Comunicaciones entre mc y PC Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación

Más detalles

Sistemas de Computación I/O. 2º Semestre, 2008 José Miguel Rubio L. jose.rubio.l@ucv.cl http://www.inf.ucv.cl/~jrubio

Sistemas de Computación I/O. 2º Semestre, 2008 José Miguel Rubio L. jose.rubio.l@ucv.cl http://www.inf.ucv.cl/~jrubio Sistemas de Computación I/O 2º Semestre, 2008 José Miguel Rubio L. jose.rubio.l@ucv.cl http://www.inf.ucv.cl/~jrubio Funciones: Enviar comandos a los dispositivos Detectar interrupciones. El usuario no

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

Organización de Computadoras. Turno Recursantes Clase 8

Organización de Computadoras. Turno Recursantes Clase 8 Organización de Computadoras Turno Recursantes Clase 8 Temas de Clase Subsistema de Memoria Organización de Memoria Principal Notas de clase 8 2 Memoria Velocidad del procesador: se duplica cada 18 meses

Más detalles

Ejemplo del uso de las subrutinas

Ejemplo del uso de las subrutinas Ejemplo del uso de las subrutinas Enunciado del problema: Diseñar un contador BCD que cuente de 0 a 59 para simular un timer de 60 segundos y que el conteo de dos dígitos BCD, sea desplegado en los displays

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

LOTUS O EXCEL CUÁL ELEGIR? Por: Teresa García López 1

LOTUS O EXCEL CUÁL ELEGIR? Por: Teresa García López 1 LOTUS O EXCEL CUÁL ELEGIR? Por: Teresa García López 1 Es innegable el auge que han tenido en los últimos años las computadoras personales como una importante herramienta de apoyo en el desempeño de las

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 Unidad de E/S Indice Introducción.

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

Guía de selección de hardware Windows MultiPoint Server 2010

Guía de selección de hardware Windows MultiPoint Server 2010 Guía de selección de hardware Windows MultiPoint Server 2010 Versión de documento 1.0 Publicado en marzo del 2010 Información sobre los derechos de reproducción Este documento se proporciona como está.

Más detalles

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010 Hilos, comunicación y competencia entre procesos Dr. Alonso Ramírez Manzanares 2-Sep-2010 Implementación de procesos Se mantiene una tabla de procesos con una entrada por cada proceso: Con lo cual tenemos

Más detalles

En el presente capítulo se describe la programación del instrumento virtual y cómo

En el presente capítulo se describe la programación del instrumento virtual y cómo Capítulo 6. Instrumentación virtual En el presente capítulo se describe la programación del instrumento virtual y cómo éste controla el circuito de captura de señales, la llamada telefónica y escribe los

Más detalles

Unidad 1. La información

Unidad 1. La información Unidad 1. La información En esta unidad aprenderás: Los conceptos básicos de la informática. Cómo se representa la información dentro del ordenador. Las unidades de información. 1.1 Conceptos básicos Informática.

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria Oliverio J. Santana Jaria 3. Aritmética tica binaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Para Los La en conocer muchos aritmética comprender otros binaria tipos

Más detalles

Apuntes de Microcontroladores (Repaso de temas previos)

Apuntes de Microcontroladores (Repaso de temas previos) Apuntes de Microcontroladores (Repaso de temas previos) Por M. C. Miguelangel Fraga Aguilar Enero 2015 Representaciones numéricas En estos apuntes se usara el posfijo b para denotar un número escrito en

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

ITT-327-T Microprocesadores

ITT-327-T Microprocesadores ITT-327-T Microprocesadores Lenguaje de Programación Ensamblador. Set de Instrucciones del 8088/8086. El set de instrucciones de un microprocesador define las operaciones básicas que el programador puede

Más detalles

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15 Sistemas operativos, arquitectura von Neumann, configuración del PC (3 puntos) 1) Señale la opción correcta: [_]

Más detalles

SIIGO Pyme. Templates. Cartilla I

SIIGO Pyme. Templates. Cartilla I SIIGO Pyme Templates Cartilla I Tabla de Contenido 1. Presentación 2. Qué es un Template? 3. Qué Aspectos se Deben Tener en Cuenta Antes de Diseñar o Modificar un Template? 4. Cuáles son las Formas que

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

Más detalles

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

2 Sea una unidad de disco duro de brazo móvil con las siguientes características: 1 Sea una unidad de disco duro de brazo móvil con las siguientes características: 18 superficies, 20.331 cilindros y 400 sectores por pista. Sectores de 1.024 bytes de información neta. Velocidad de rotación:

Más detalles