Está en la página 1de 10

1.- Lenguajes de alto nivel vs lenguajes bajo nivel Mas amigable con el usuario,facilidad al programar.

-Visual Basic ,Delphi ,Visual fox ,etc, -Fortran, Basic ,Pascal ,Cobol. -Java ,C -Ensamblador HAERDWARE
Ventajas -Mejor presentacin -Buena relacin entre tiempo invertido/resultado Balance adecuado entre complejidad y facilidad de usuario, realizados para programar. Existe facilidad d crear nuevos comandos. -Los lenguajes son cortos y rapidos. -Todos los recursos del sistema estn disponibles

Velocidad de procesamiento de instrucciones.

Lenguaje Visual Basic Visual Fox Delphi Fortran Basic Pascal Java C Ensamblador

Desventajas Se requieren maquinas grandes

Dedicacion especial a las ramas de la ciencia. Requiere ser programador No es transportable.

La evolucin de microprocesador Ao 1671 1701 1800 1834 Comentario Blas Pascual inventa una mquina que hace sumas y restas Gottfried wilhen con leibnitz, de una mquina que multiplica y divide Jacquard, desarrolla una tejedora programable con tarjetas perforadas Charles Babbage, concibe la mquina analtica con 4 secciones: almacn (memoria), taller (CPU), seccin de entrada y salida Alan touring cre la colossus, la primera computadora (usaba bulbos y era de propsitos militar) Eckert y Mauchely, en la universidad de pensilvania desarrollaron ENAC I con fines comerciales PDP I de la compaa DEC para fines comerciales

1943

1946

1960

1971

Intel 4064, primer microprocesador para Bussicom una empresa Japonesa que vende celulares de bolsillo

Ao 1971 1972 1973 1973

Procesador 4004/4040 8008 8080 (micro moderno ) compatible con TTL

N. Bits 4 bits 8bits 8bits

F-8 ( fairchild) 6502 ( MOSC 8 bits Tecnology) 68000 (Motorola) Z80 (ziling) 8085 generadores de reloj y controlador de sistema integrado 8086/8088 80286 80386 80486 Pentium Pentium MMx 8 bits

1977

1978 1982 1985 1989 1993 1997

16 bits 16 bits 32 bits 32 bits 32 / 64 bits 64 bits

El microprocesador 8086/8088 se dividen en 2 partes funcionales * Execution Unit ( EU- unidad de ejecucin) * Bus Interface Unit ( BIU-Unidad de bus de Interface)

Registros con segmentos


Los registros adicionales, a los que se les de el nombre de registro de segmento, generan direcciones en la memoria junto con otros requisitos en el microprocesador. A continuaci n aparece una lista en cada registro de segmento junto con su funcin en el sistema.

CS (cdigo) : el segmento de cdigo es una seccin en la memoria que tiene los programas y procedimientos utilizados por los programas. El registro de segmento de c digo define la direccin inicial de la seccin de memoria que tiene el cdigo ( es un registro de 16 bits que define el segmento de las instrucciones ) . DS ( datos ): el segmento de datos es una seccin en la memoria que contiene la mayor parte de los datos utilizados por un programa (estos datos pueden ser variables, vectores, matrices, etc). SS (pila) : el segmento de pila define la superficie de la memoria utilizada para la pila. La ubicaci n del punto inicial de entrada a la pila, se determina por el registro apuntador de la pila. El registro BP tambien direccin a los datos que hay en el segmento de pila. ES (extra o adicional): el segmento extra o adicional de datos lo utilizan algunas instrucciones para cadenas. FS Y GS : Estos registros de segmento adicionales estn disponibles en los microprocesadores 80386 en adelante a fin de contar con 2 segmentos adicionales de memoria para acceso con los programas.

Banderas de registro status ( el registro de banderas)


Las banderas indican la condicin del microprocesador a la vez que controlan su funcionamiento.

15 14 13 12 11 10 9 O D I

8 T

7 S

6 Z

4 A

2 P

0 C

C (Acarreo) : indica un acarreo despus de una suma o un prstamo despus de una resta. La bandera de acarreo tambin indica condiciones de error en ciertos programas y procedimientos. Tambin se utiliza en algunas instrucciones de rotacin y desplazamiento. P (paridad): es un cero para la paridad impar y un uno para la paridad par. La paridad es un conteo de unos expresado en un nmero par o impar. Por ejemplo, si un numero contiene 3 bits con uno binario, tiene paridad impar. Si un nmero contiene cero bits de uno se considera que es paridad par. A (Acarred auxiliar): indica un acarreo despus de una suma o un prstamo despus de una resta entre las posiciones de los bits 3 y 4 en el resultado. Este indicador muy especializado se prueba con las instrucciones DAA y DAS para ajustar el valor de AL despus de una suma o resta en VCD. El microprocesador, no utiliza en otra forma el bit de bandera A.

Z (zero): indica que el resultado de una operacin aritmtica o lgica es cero. Si Z es igual a 1 el resultado es 0, si Z es igual a 0 entonces el resultado no es 0. S (signo):Indica el signo aritmtico del resultado despus de una suma o resta. Si S es igual a 1 la bandera de signo se activa y el resultado es negativo. Si S es igual a 0 la bandera de signo se desactiva y el resultado es positivo. Se debe tener en cuenta que el valor de la posici n del bit ms significativo se coloca en el bit de signo para cualquier instruccin que afecte las banderas. T (trampa): cuando se activa la bandera de trampa se habilita la caracterstica de depuracin del microprocesador. Ms adelante aparecen mayores detalles de esta caracterstica. I (interrupcion): Controla el funcionamiento de la terminal de la entrada de INTR ( interrupcin externa). Si I es igual a 1 se habilita la interrupcin y si I es igual a 0 se des habilita la entrada INTR. D (direccin): Controla la seleccin de incremento o decremento de los registros de I o SI durante las instrucciones de cadenas o arreglos. Se utiliza para indicar si las operaciones con siringa se ejecutarn de forma ascendente o descendente. O (sobre flujo): es una condicin que ocurre cuando se suman o restan nmeros con signo. Un sobre flujo indica que el resultado ha excedido la capacidad de la m quina. por ejemplo, si se suma 7FH (+127) a 01H (+1) el resultado sera 80H (-128) . Este resultado representa una situacin de sobr flujo sealado por la bandera prala suma con signo. Para operaciones sin signo no se toma en cuanta esta bandera. Modos de direccionamiento Direccionamiento inmediato: transfiere n bytes o palabras de datos inmediatos hacia el registro o localidad de memoria en la memoria destin. Ejemplo. MOV AL, 22H MOV EBX, 12345678H MOV AL, 18H MOV BX, 1998H MOV DS, 0B70H error MOV AX, 0B70H MOV DS, AX MOV DL, 0B800H error MOV CX, 1 MOV CX, 001 MOV AL, 0100 10016

Direccinamiento por registro: Transfiere bytes o palabras desde el registro o localidad destin en la memoria: Ejemplo MOV CX, DX MOV AH, DH MOV BP, BX MOV AX, BL error MOV AL, BL Direccionamiento directo:Transfiere bytes o palabra entre una localidad de memoria y un registro Ejemplo MOV DL, [300] MOV DX, [200]

Direccinamiento indirecto por registro:Transfiere bytes o palabras entre un registro y una localidad de memoria direccinada por un registro ndice o base. Ejemplo MOV AX, [BX] MOV [BX], AX Direccionamiento base ms ndice:transfiere bytes o palabra entre un registro y una localidad de memoria direccinada por un registro bas ms un registro ndice. Ejemplo MOV AX,[BX + SI] MOV [BX + DI], CX Direccinamiento relativo por registros:Transfiere bytes o palabras entre un registro y una localidad de memoria direccinada por un registro ndice o base y adems un desplazamiento. Ejemplo MOV AX, [BX +4]

Direccinamiento relativo base ms ndice:Transfiere bytes o palabra entre un registro y una localidad de memoria direccinada por un registro bas ms un ndice ms un desplazamiento Ejemplo MOV AX, [ BX+ DI +4 ] Direccionamiento de ndice escalados: Esta disponible en microprocesadores 80386 en adelante, el segundo registro de un par de ellos, el ndice se modifica por el factor de escala para generar la direccin de la memoria del operando. Ejemplo MOV AX, [EAX + 4 * EBX] Ejercicios: determine que tipo de direccin ambient es para cada instruccin. MOV [BX + 4] , AX relativo por registro MOV [EBX + 2 * EAX ] , AX ndice escalado MOV AX, BX registro MOV [BX ] ,AX indirecto por registro MOV BL, 3AH inmediato MOV [BX + SI ] , AX base ms ndice Ejercicio. Implementar un programa en ensamblador que sume la localidad de memoria 200 y 201, el resultado lo deje en localidad 202. OPCIN 1 MOV BX, 200 MOV AL, [BX] INC BX MOV DL, [BX] ADD AL, DL INC BX MOV [BX], AL OPCION 2 MOV AL, [200] MOV BL, [201] ADD AL, BL MOV [202], AL

OPCIN 3 MOV AL, [200] ADD AL, [201] MOV [202], AL OPCIN 4 MOV AX, [200] ADD AL, AH MOV [202], AL PROGRAMAS Sumar el contenido de las localidades 200 a la 210, el resultado guardarlo en 211 parte alta y 212 parte baja MOV BX, 200 // posiciona a BX en la direccion 200 MOV AH, 0 // pone en 0 la parte alta de AX MOV AL, [BX] // Mueve el contenido de BX a la parte Baja de AX INC BX // incrementa la posicion de localidad a la 201 MOV DH, 0 // pone en 0 la posicion alta de DX MOV DL, [BX] //mueve el contenido de BX a la parte baja de DL ADD AX, DX// suma DX a AX INC BX // incrementa la direccion de BX a 202 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 203 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 204 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 205 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 206 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 207 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 208 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 209 MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX INC BX // incrementa la direccion de BX a 210

MOV DL, [BX] // mueve el contenido de BX a la parte baja de DX ADD AX, DX //suma DX con AX MOV [211], AX// mueve AX a la direccin 211,quedando AH en 211 y AL 212

Con ciclo (loop) MOV BX, 200// posiciona a BX en la direccion 200 MOV AH, 0// pone en 0 la parte alta de AX MOV AL [BX] //Mueve el contenido de BX a la parte Baja de AX MOV CX, 10//asigna un 10 decimal al CX CICLO:// etiqueta CICLO de loop INC BX // incrementa la direccion MOV DH, 0 // pone en 0 la posicion alta de DX MOV DL, [BX] //mueve el contenido de BX a la parte baja de DL ADD AX, DX //suma DX con AX LOOP CICLO//regresa a SALTO hasta que CX = 0 MOV [211], AX// mueve AX a la direccin 211,quedando AH en 211 y AL 212 Con salto MOV AH, 0// pone en 0 la parte alta de AX MOV CX,10 //asigna un 10 decimal al CX MOV BX, 200// posiciona a BX en la direccion 200 MOV AL, [BX] //Mueve el contenido de BX a la parte Baja de AX SALTO: // etiqueta de salto para JNE INC BX // incrementa la direccion MOV DH, 0 // pone en 0 la posicion alta de DX MOV DL, [BX] //mueve el contenido de BX a la parte baja de DL ADD AX, DX // //suma DX con AX DEC CX //decrement CX CMP CX, 0 //compara si CX es igual a 0 JNE SALTO // si CX <> 0 salta a etiqueta SALTO XCHG AX// realiza el cambo de AL a AH MOV [211], AX// mueve AX a la direccin 211,quedando AH en 211 y AL 212

También podría gustarte