Sei sulla pagina 1di 32

MICROPROCESADORES

Sistema Numericos Sistema Decimal= 10 simbolos =0.9 Sistema Binario= base 2= smbolos 0 a 1 0=falso; 1= verdadero

Conversin de Decimal a Binarios Divisiones sucesivas entre 2 hasta que el cociente sea 0 y tomamos lo restante o residuos en sentido inverso.

125 62 31 15 7 3 1

Divisin 2 2 2 2 2 2 2

62 31 15 7 3 1 1

Resto 1 0 1 1 1 1 1

12510= 11111012

Binario a Decimal Desarrollar polinomio de base 2 y resolverlo en base 10.

Binario 1 0 1 1 1 1 1 11111012

20 21 22 23 24 25 26 =

= = = = = = =

Decimal 1 0 4 8 16 32 64 12510

DECIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

BIANARIO 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F

Sistema Hexadecimal Base 16= 16 smbolos 09, A, B, C, D, F Decimal a Hexadecimal Divisiones sucesivas Hexadecimal Decimal entre 16 hasta que el C 12 160 = 12 cociente sea cero y tomar 1 = A 10 16 160 los restos en sentido 2 = inverso. 1 1 256 16 1AC2 = 42810 Decimal residuo Hexadecimal 428 16 = 26 12 C 26 16 = 1 10 A 16 16 = 0 1 1 42810= 1AC16

Hexadecimal a Decimal Desarrollamos un polinomio base 16 y lo resolvemos en base 10 Binario a Hexadecimal Agrupamos en grupos de a 4 bits y sustituimos por su equivalente cdigo hexadecimal.

101100112 = B3H

0010110111002 = 2DCH

Hexadecimal a Binario Sustituimos cada smbolo hexadecimal por su equivalente grupo de 4 bits binarios.

3CFH = 0011110011112 3 C F 7CBAH = 01111100101110102 7 C B A


CONVERSIONES ARIMETICAS

BINARIO 0 0 1 1 + + + + 0 1 0 1 = = = = 0 1 1 102

SUMAS 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0

1 1 0

1 0 1 1 1 1 1 0 0

RESTA 0 1 1 0 0 1 0 1 1 =0 =0 =1 =1 0 1 1

1 0 1 1 1 0

1 1

1 0 1 1 1 1 0 1 0

1 1 0

0 0 0 1 1 1 1 1 1

HEXADECIAMAL SUMA 3 2 6 C B 7

3 2 6

7 F 7

C E A

1 2 3 1 8 C E F 9

F F F

F F E

RESTA

4 2 F 3 3

3 7 6 5 A B C 2 C A 9 2 1 0 5 F E C 1 1 1 9 1 1 1 9 F E C 2 1 0 5

Ejercicios de nmeros hexagesimales Realice las siguientes conversiones. 1. 2. 3. 4. 5. 6. 1. 17089 854 427 213 106 53 26 13 6 3 1 Divisin 2 2 2 2 2 2 2 2 2 2 2 854 427 213 106 53 26 13 6 3 1 0 Resto 0 0 1 1 0 1 0 1 0 1 1 170810 11010112 FC3AH 7AB0H 153710 11011010112 a binario a decimal a decimal a binario a Hexadecimal a hexadecimal

110101011002

2. 11010112 Binario 1 1 0 1 0 1 1 3. FC3AH Hexadecimal A 3 C F FC3AH 4. 7AB0H 01111010101100002 5. 153710 Decimal 1537 96 6 10 3 12 15 Decimal 1 2 0 8 0 64 128

20 21 22 23 24 25 26

= = = = = = =

160 161 162 163

Decimal 10 48 3072 61440 6457010

16 16 16

= 96 = 6 = 0

residuo 1 0 6

153710 = 601H

F C 3 7 B 4 B 1 0 7 8 2

3 A B D C E F 4 7 A C

7 7 7 7 F D E 6 7 9 9

6 5 4 3 A E C 5 A 5 7

3 5 4 6 8 7 9 2 C C D OPERACIONES LOGICAS

- 0 1 0 1 0 1 0 1 1 + 1 0 1 0 1 0 1 0 0 - 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 Palabra = word = 16 bits = 2 bytes 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Bits mas significativos

bits menos significativos

Combinaciones 210 = 65536 Entero sin signo(0.65535) Hexadedimal (000000FFFFH) Doble palabra = Dword= 4 bytes = 32 bits 31 16 15 0

Combinaciones 232 = 4294672296 Entero sin signo (0.429462295) Hexadecimal (00000000.FFFFFFFFH) OPERACIONES LOGICAS (bit a bit) Producto logico = Y AND (bit a bit) a 0 0 1 1 b 0 1 0 1 A and b 0 0 0 1

El resultado es verdadero si ambas entradas lo son Suma lgica = O a 0 0 1 1 b 0 1 0 1 A or b 0 1 1 1

El resultado es verdadero si al menos una de las entradas lo es OR exclusivo = funcin comparacin XOR a 0 0 1 1 b 0 1 0 1 A and b 0 1 1 0

El resultado es verdadero si sus entradas son complementarias.

(NEGACION)Complemento: NOT a 0 1 Nota 1 0

DESPLAZAMIENTOS Y ROTACIONES Rotaciones A la derecha ROR 7 6 5 4 3 2 1 0

Ejemplo (101101102) = 010110112 A la izquierda ROL 7 6 5 4 3 2 1 0

Ejemplo: (101111002)= 011110012 Desplazamientos A la derecha 7 6 5 4 3 2 1 0 0 SHR = Shif rigth arimetico A la izquierda 7 6 5 4 3 2 1 0 0 SHL = Shif left Ejemplo SHR : 101100102 R= 010110012 SHL= 101100102 = 17810 = 5910 = 17810

2 arimetico

R =1011001002 = 35610 Ejemplo complemento a 2 1 -18a 0 0 0 1 0 0 1 0 Ca1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0

SHL 1 1 1 0 1 1 1 0 0

Ca1

0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 =390

EJERCICOS Realice las siguientes operaciones a) b) c) d) e) f) g) (7F) AND (8E) (7) OR (37) (25) XOR (37) ROL (3) SHL (BC) SHR (33) Representacin en C a 2 = 115

Soluciones a) (7F) AND (8E) 7F 1 1 1 1 1 1 1 0 8E (7F) AND (8E) 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0

INTRODUCCION A LOS MICROPRECESADORES

EVOLUCION 50-60 Transistores 1975 Intel lanza el 4040

4 bits 45 instrucciones Diseccionado 4096 localizaciones de memoria 8008 8 bits se demoraba en una suma 20 microsegundos

1973 8080 10 veces mas rpido que el 8008, se demoraba 2 microsegundos. 1978 8088 16 bits 4.4 microsegundos 1979 8088 ejecutaban 2.5 millones de instrucciones por segundo 1980 80286 8.2 millones de instrucciones por segundo Actualidad velocidad 1.3 Ghz 109

ARQUITECTURA Pipeline = Segmentacin del microprocesador. Subdivisin del microprocesador en pequeas unidades especialidades en la solucin de una tarea.

PARALELISMO Unidad Arimetica CACHE Unidad de Admn. De memoria O MULTITAREA Aumenta la velocidad

Unidad Logica Unida punto Flotante

RISC Conjunto de instrucciones reducidas que permite que los microprocesadores actuales tengan un conjunto de instrucciones mas rpidas, mas potentes y con un tiempo de ejercicio mucho menor que sus predecesores. Un sistema microprocesador

1 2 3 Memoria + Dispositivos de E/S

Microprocesador

CANALES DE INFORMACION 1. BUS DE DATOS: por aqu viajan los datos 2. BUS DE DIRECCIONES: se coloca la direccin del dispositivo de E/S o localizacin de memoria hacia donde usan los datos o de donde vienen 3. BUS DE CONTROL: se indica que hacer con esos datos escritura o lectura.

Microprocesador 8086 80286 803865x 80480

Bits de datos 16 bits 16 bits 16 bits 32 bits

Bits direccionamiento 20 bits 24 bits 24 bits 32 bits

Velocidad reloj 5 MHz 16 MHz 33 MHz 60 MHz

A mas ancho el bus de datos mayor capacidad de transferencia de informacin tendra el microprocesador = velocidad.

Bus de direcciones

8086

; 20 bits

0000 FFFF
220 = 1048576

Mientras mayor sea el bus de direcciones mayor sera la cantidad de posiciones de memoria que podra direccionar el microprocesador.

80286/3865X

f F F F F F FH

16Mb

0 0 0 0 0 0 0 0H 24 bits de direcciones 224 = 24* 220 = 16 Mb 1M 80486

FFFFFFFFH 46 bytes maximo que puede direccionar

00000000H 32 bits 232 = 22 * 210 * 220 = 4.1024 M 1M 16 G

Ejemplo= guardar el dato 3F7AH (word) en la posicin de memoria 37850H

37852H 37851H 37850H 3784FH

Ejemplo 2: guardar el dato 3A2B5C7EH en la posicin 2FCAEH DWORD = 4 bytes

2FCB2H 2FCB1H 2FCB0H 2FCAFH 2FCAEH 2FCADH

Ejemplo 3: guardar el dato 3F223344 en la posicin 7777FH.

77782H 77781H 77780H 7777FH 7777EH

REGISTROS INTERNOS DEL MICROPROCESADOR Pequeas localizaciones de memoria que estn dentro del microprocesador a diferencia de la memoria estos registros ya tienen un nombre y un uso exclusivo. Clasificacion Registros de proposito general: seran de uso genral por el programador que se podran direccional de tres formas diferentes.

Para u tamao de 32 bytes solo valen para microprocesadores 80386 (EAX, EBX, ECX, EDX) Para tamao de 16 bytes AX, BX, CX, DX

Tamao 8 bytes AH (High: alta) BH, BL AL (Low: bajo) CH, CL Y DH, DL Ejemplo: EBX = 887FCBAAH 15 31 EBX Word bajo 16 BX 0

BX= CBAAH BH= CBH BL= AAH FUNCION PRIMARIA AX (ACUMULADOR) es el mas importante y su funcin es conservar el resultado de las operaciones aritmticas y lgicas. BX (BASE) generalmente contiene la direccin base o desplazamiento de los datos en memoria que sirven de operando de las instrucciones. CX (CONTADOR) contiene el conteo necesario para ciertas instrucciones de desplazamiento, rotaciones y lazos. DX (DATOS) contiene la parte mas significativa del producto luego de una multiplicacin o las mas significativa del dividendo antes de una divisin, o la direccin del puerto E/S hacia donde o desde donde se van a escribir o leer los datos. PUNTEROS O INDICES Aunque tambin son registros de propsito general se utilizan para completar la direccin de los datos en memoria que sirven de operandos a muchas instrucciones, formatos de 32 bits. SP (STACK POINTER: PUNTERO DE STACK O PILA) este registro apunta o direcciona los datos guardados en una zona de memoria temporal llamada stack o pila, es de tipo LIFO: Last in first cot ultimo que entra, primero que sale.

Sp apunta a la ultima posicin ocupada o al ultimo dato guardado

BP (PUNTERO BASE) contiene la direccin base o desplazamiento para direccionar datos de un arreglo en una pila en memoria, direcciona datos en el stack. DI (INDICE DESTINO) se emplea para direccionar datos en la memoria de forma indirecta sealando el destino en una instruccin de transferencia de cadenas. SI (INDICE FUENTE O ORIGEN) se emplea para direccionar datos en memoria de forma indirecta sealando el origen de los datos en una instruccin de transferencia de cadenas. 32 bits ESP, EBP, EDI, ESI, EIP

IP (Puntero de Instrucciones) apunta a la siguiente instruccin a ejecutar por el microprocesador dentro del segmento de cdigo. REGISTROS DEL SEGMENTO Ayuda a direccionar las posiciones en el interior de cada uno de los segmentos que puede tener una aplicacin dada. Formato de 16 bits. CS (Segmento de cdigo) seala el inicio del segmento de memoria donde se almacenan las instrucciones a cdigo del programa. DS(Segmento de datos) indica el inicio del segmento de datos las direcciones especificas de cada dato se completaran con un desplazamiento contenido en otro registro. ES(Segmento extra) seala el inicio de un segmento adicional de datos involucrando fundamentalmente en instrucciones de transferencia de cadena. SS(stack segment: segmento de stack o pila) indica el inicio de la pila o stack.

REGISTRO DE BANDERAS Indica el modo de trabajo del microprocesador, controla la ejecucin de algunas de sus instrucciones e indica ademas el resultado de las operaciones arimeticologicas.

Flags (16 bits) Flags (32 bits)

31

11

Bits : C: Carry: Acarreo: indica si hubo acarreo luego de una operacin de suma o si se necesita un prstamo en una operacin de diferencia. 1 si hubo acarreo C 0 no hubo acarreo

1byte Ejemplo: 100000002 +100000002 1000000002 carry bytes

-1 carry 010000002 100000002 110000002 Bits 2: P: Paridad= indica la cantidad de unos que tiene el resultado de una operacin arimetica.

1 es par P 0 es impar

bit 6: Z: cero

1 si el resultado es cero Z 0 si el resultado es diferente de 0

bit 7: S: signo 1 es resultado < 0 S 0 es resultado 0

bit 11: O: Overflow desbordamiento, solo valida para formato con signo 1 si excedi el formato de trabajo O 0 si no excedi el formato de trabajo

DIRECCIONAMIENTO DE MEMORIA EN MODO REAL Modos de trabajo de los microprocesadores . Modo Real de Trabajo: solo puede direccionar un megabyte de memoria. El microprocesador se desliza por defecto y arranca el modo real. Propio del MS-DOS. Modo Protegido: El microprocesador direcciona toda la memoria incluyendo la que esta por encima de un MB (memoria extendida: XMS) DIRECCIONAMIENTOEN MODO REAL: Una direccin de memoria se genera con una direccin de inicio de segmento mas una direccin desplazamiento.

CS, ES, SS, DS.

16 bits Desplazamiento

CS = 340FH Desplazamiento = 5678H Direccin real = 39768H 340F0H

La direccin exacta de una localizacin de memoria dentro de un segmento dado estar definida por un desplazamiento (en 16 bits) medida desde la direccin de inicio del segmento. La direccin real ser la suma del desplazamiento mas el inicio del segmento.

340F0H 5678H 39768H

El desplazamiento estar almacenado en un registro de desplazamiento que sern los punteros e ndices y algunos de propsito general. La direccin se representa Registro Segmento 340F0H: 5678H = 39768H
Registro Desplazamiento

Un registro de segmaento = 3333H Un registro de desplazamiento (dentro del segmento)= 4444H + 33330H 4444H 37774H

Direccin de inicio segmento 33400H 34FF0H

Direccin final mxima 433FFH 44FEFH

33400H + FFFFH 433FFH 34FF0H + FFFFH 44FEFH

El tamao mximo que puede tener un segmento es 216= 64 MB Toda aplicacin en modo real estar distribuida en memoria en segmentos.

SS x 10H SS

DS x 10H

DS

CS x 10H

CS

REGISTROS IMPLICITOS SEGMENTO DESPLAZAMIENTO IP SP:BP BX, DI, SI, # 16 Bits DI para instrucciones de transferencia de cadena

CS SS DS ES

Ejercitacin sobre memoria en modo real De los siguientes procesadores diga que cantidad de memoria es capaz de direccionar cada uno, indicando direccin de inicio y fin y justifique el porque de su respuesta.

MODOS DE DIRECCIONAMIENTO DE MEMORIA DE DATOS

Es la forma en que nos referimos a los operandos de las instrucciones(siempre tiene 4 columnas) La programacin consta de: Etiquetas: instruccin = cdigo Operandos que hacen como hacer instrucciones. Operandos=(instruccin) transfiere un dato (byte word, doble word) entre registros o entre localizaciones de memoria. Tipos Por registros Inmediato= numero Directo(importante) Indirecto Relativo por registros Base mas indice Indice escalado(modo protegido)

Por registros En este modo de direccionamiento se transfiere un dato (byte word, dobleword)entre registros del microprocesador. MOV AX, BX operando origen

Operando destino word AX BX

Antes Despus AX=3F2CH AX=3377H BX=3377H BX=3377H

MOV CL, AH byte CL AH

Antes Despues AX=3789H CX=BF37H CX=BFCAH AX=3789H

REGISTROS MAS UTILIZADOS 8 bits = AH, AL, BH, BL, CH, CL, DH, DL 16 bits = AX, BX, CX, DX, SP, BP, DI, SI 32 bits = EAX, EBX, ECX, EDX, ESP, EBP,EDI, ESI Algunas veces CS, ES, DS, SS. Ejemplo: MOV DH, DL MOV CX, SI MOV ECX, EBX No se puede hacer No se puede memezclar registros de (segmentos)dirferentes ramaos en una misma instruccin.

MOV CL, DX

MOV AX, BL

Realizar transferencias entre registros de segmentos en una misma instruccin.

MOV DS, ES

No puede aparecer el registro de segmento de cdigo en el operando destino de una instruccin.

MOV CS , AX

MOV 3FCA, AX

DIRECCIONAMIENTO INMEDIATO Se transfiere un dato que aparece de forma explicita (inmediata) en el operando origen de la instruccin hacia un registro o localizacin de memoria. MOV AX, 3FCAH Dato o constante numrica definida por programa.

R=/ AX

3FCAH Lo que haba en AX se pierde.

FORMATO DE CONSTANTES Hexadecimal: mov CL, 3BH Binaria: mov AH, 01101100B Decimal (sin sufijo): mov DH44; DH=2C ASCII: mov A; AL = 41H DIRECCIONAMIENTO DIRECTO Se transfiere un dato (byte, word, dobleword) entre un registro y una localizacin de memoria indicada por desplazamiento en el segmento de datos. Ejemplo MOV AX; [3FFFH] Nos referimos a lo que apunta representa es numero lo que esta dentro. En el segmento de datos. AX [DS:3FFFH]

a) mov CL , [1300H] Destino Datos DS = 1000H

11300H 11300H

CL

[DS: 1300H] byte CL [11:300]

DS + 10 + 1300H

R= / CL = AB

Generalmente todas las localizaciones de memoria aparecen en un ensamblador bajo un nombre simblico. b) mov CL, num 2 CL [DS: num 2] directo

Num 2 = 1300

c) datos

3 = 1777H DS = 4000H

Contenido 1D 2B 3A 41778H 41777H 41776H

word AX [DS:dato 3]

40000H 4777H 41777H

AX AX = 1D2BH d)

[41777H]

mov result, AX word

[DS: Result]

AX

mov

AL , NUMERO AX, ALGO EAX, LISTA NOTAS, AL ALGO, AX CASA, EAX

DIRECCIONAMIENTO INDIRECTO Transfiere un dato (1 byte, 1 word 1 dobleword) entre un registro y una localizacion de memoria direccionada por un registro indice o base (BX, BP, SI)

MOV AX [SI]
Direccin indirecta Direccin por registro

Cuando hay [ ] el contenido SI significa una direccin de memoria.

AX Datos DS = 3000H SI =7777H AX = 33FFH [37777H] = 32H [37778H] = B0H DS x 10 + SI 30000H 7777H word AX R/AX = B032H

[DS: SI]

[37777H]

37778 37777

Se comienza por el menos significativo b. MOV [BX], DL


INDIRECTO X REGISTRO

1 byte

[DS:BX]

DL

[DS x 10H + BX]

DL

c. MOV ECX, [DI] Indirecto

DWORD

ECX

[DS:DI]

DS x 10 + DI Datos DS = 30000H DI = 2222H [32222H] = 33ABH [32224H] = 2109H

+ 30000H 2222H 32222H

3 32225H 32224H 32223H 32222H

ECX

[32222H]

R/ECX = 210933ABH

Potrebbero piacerti anche