39
IPN IPN Escuela Escuela Superior de Superior de Cómputo Cómputo MICROPROCESADORES II MICROPROCESADORES II

IPN Escuela Superior de Cómputo MICROPROCESADORES II

Embed Size (px)

Citation preview

Page 1: IPN Escuela Superior de Cómputo MICROPROCESADORES II

IPNIPNEscuelaEscuela Superior de Cómputo Superior de Cómputo

IPNIPNEscuelaEscuela Superior de Cómputo Superior de Cómputo

MICROPROCESADORES IIMICROPROCESADORES IIMICROPROCESADORES IIMICROPROCESADORES II

Page 2: IPN Escuela Superior de Cómputo MICROPROCESADORES II

CONTENIDO:CONTENIDO:I. INTRODUCCION 1.1. Importancia del lenguaje ensamblador 1.2. Descripción y características del lenguaje ensamblador 1.3. Modelos de arquitectura de computadoras 1.4. Características de los microprocesadores de la familia x86

II. EL MICROPROCESADOR Y SU ARQUITECTURA 2.1. Descripción de la unidad procesadora de una microprocesador de la familia x86 2.2. Registros del microprocesador 2.3. Modo Real y Modo Protegido del Microprocesador2.4 Segmentación 2.5. Modos de direccionamiento de datos

III. PROGRAMACION EN ENSAMBLADOR 3.1. Requerimientos para la programación en ensamblador 3.2. Formato de un programa en ensamblador 3.3. Software TASM y MASM 3.4. Creación de un programa en ensamblador

Page 3: IPN Escuela Superior de Cómputo MICROPROCESADORES II

CONTENIDO:CONTENIDO:IV. CONJUNTO DE INSTRUCCIONES EN ENSAMBLADOR

4.1. Instrucciones para movimiento de datos

4.2. Instrucciones aritméticas y lógicas

4.3. Instrucciones de entrada/salida

4.4. Instrucciones control de programa

V. MACROS Y PROCEDIMIENTOS

5.1. Definición de procedimiento

5.2. Sintaxis de un procedimient0

5.3. Definición de una macro

5.4. Sintaxis de una macro

5.5. Bibliotecas de macros

6. INTERRUPCIONES

6.1. Definición de interrupción

6.2. Clasificación

6.3. Funcionamiento del mecanismo de interrupciones

6.4. Interrupciones más comunes

Page 4: IPN Escuela Superior de Cómputo MICROPROCESADORES II

CONTENIDO:CONTENIDO:VII. MANEJO DE ARCHIVOS

7.1. Manejando archivos con el método FCB

7.2. Manejando archivos con canales de comunicación

VIII. PROGRAMACION DE PERIFERICOS

8.1. Puerto Paralelo

8.2. Puerto Serial

8.3. TIMER

8.4. Controlador de Interrupciones

8.5. Coprocesador matemático

8.6. Modo gráfico y ratón

IX. PROGRAMACION AVANZADA

9.1. Interfaz del lenguaje “C” con ensamblador

9.2. Programación de ensamblador en Windows

Page 5: IPN Escuela Superior de Cómputo MICROPROCESADORES II

I. INTRODUCCION :I. INTRODUCCION :

1.1. Importancia del lenguaje ensamblador

1.2. Descripción y características del lenguaje ensamblador

1.3. Modelos de arquitectura de computadoras

1.4. Características de los microproc. de la familia x86

Page 6: IPN Escuela Superior de Cómputo MICROPROCESADORES II

1.1, 1.2 El ensamblador1.1, 1.2 El ensamblador• Existen varias razones que justifican el uso Existen varias razones que justifican el uso

del ensamblador en lugar de otros lenguajes:del ensamblador en lugar de otros lenguajes:• El ensamblador brinda la oportunidad de El ensamblador brinda la oportunidad de

conocer más a fondo la operación de su PC.conocer más a fondo la operación de su PC.• Se conserva el control total las tareas que realiza Se conserva el control total las tareas que realiza

la PC, siempre y cuando ésta sea físicamente la PC, siempre y cuando ésta sea físicamente capaz de hacerlo.capaz de hacerlo.

• Los programas en ensamblador son más rápidos, Los programas en ensamblador son más rápidos, más compactos y tienen mayor capacidad que más compactos y tienen mayor capacidad que los creados en otros lenguajes.los creados en otros lenguajes.

• Permite optimizar al máximo los programas.Permite optimizar al máximo los programas.

Page 7: IPN Escuela Superior de Cómputo MICROPROCESADORES II

1.3 Arquitecturas de computadoras1.3 Arquitecturas de computadoras• RISC vs. CISCRISC vs. CISC

• RISC.RISC.• CISC.CISC.

• Hardvard vs. Princeton (Von Neuman):Hardvard vs. Princeton (Von Neuman):• Hardvard.Hardvard.• Von Neuman.Von Neuman.

• Otras clasificación, (Flynn):Otras clasificación, (Flynn):• MIMD, MISD, SIMD y SISD.MIMD, MISD, SIMD y SISD.

Page 8: IPN Escuela Superior de Cómputo MICROPROCESADORES II

1.3 Arquitecturas de computadoras1.3 Arquitecturas de computadoras

La arquitectura Harvard, separa la memoria de datos y la memoria de programa, y se accede a ellas mediante buses distintos.La arquitectura Von Neuman trata de la misma forma los datos que las instrucciones.

Page 9: IPN Escuela Superior de Cómputo MICROPROCESADORES II

1.4 Características micros x861.4 Características micros x86

Page 10: IPN Escuela Superior de Cómputo MICROPROCESADORES II

1.4 Características micros x861.4 Características micros x86

Page 11: IPN Escuela Superior de Cómputo MICROPROCESADORES II

II. EL MICROPROCESADOR Y SU ARQUITECTURA

2.1. Descripción de la unidad procesadora de una microprocesador de la familia x86

2.2. Registros del microprocesador

2.3. Modo Real y Modo Protegido del Microprocesador

2.4. Segmentación

2.5 Modos de direccionamiento de datos

Page 12: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.1. El Microp. 80X86 y su Arquitectura2.1. El Microp. 80X86 y su Arquitectura

CPU80X86

MemoriaRAM

Puertos E/S

Bus de Direcciones

Bus de Datos

Bus de Control

Page 13: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registros2.2 RegistrosEAX AH AX AL Acumulador EBX BH BX BL Base ECX CH CX CL Contador EDX DH DX DL Datos ESP SP Apuntador de pila EBP BP Apuntador de base EDI DI Índice destino ESI SI Índice fuente

EIP IP Apuntador instrucción

EFLAGS BANDERAS Banderas CS Código DS Datos ES Extra SS Pila FS GS

-Registros: Propósito general, propósito específico y de segmento.-Los registros sombredos existen despues del 80386.-FS y GS no tienen nombres asociados.

Page 14: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registros2.2 Registros

• Registro: Conjunto de flip-flops capaz de Registro: Conjunto de flip-flops capaz de almacenar, y en algunos casos modificar, almacenar, y en algunos casos modificar, información binaria.información binaria.

• Dentro de todo CPU existe un conjunto de Dentro de todo CPU existe un conjunto de registros.registros.

• Algunos tienen un uso específico, otros son Algunos tienen un uso específico, otros son de uso general.de uso general.

• Los registros de uso general normalmente Los registros de uso general normalmente se utilizan para guardar datos y resultados se utilizan para guardar datos y resultados intermedios.intermedios.

Page 15: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registros2.2 Registros

• Desde el punto de vista del programador, es Desde el punto de vista del programador, es muy importante conocer el conjunto de muy importante conocer el conjunto de registros internos de un procesador y su uso, registros internos de un procesador y su uso, cuando se programa en bajo nivel.cuando se programa en bajo nivel.

• Esto se debe a que muchas de las Esto se debe a que muchas de las instrucciones de lenguaje máquina suponen instrucciones de lenguaje máquina suponen que los datos están en alguno de los que los datos están en alguno de los registros o almacenan el resultado en alguno registros o almacenan el resultado en alguno de los registros internos.de los registros internos.

Page 16: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registros de los procesadores 2.2 Registros de los procesadores 80X8680X86

• Registros de Uso General:Registros de Uso General:– EAX:EAX: AcumuladorAcumulador– EBX:EBX: BaseBase– ECX:ECX: ContadorContador– EDX:EDX: Datos.Datos.– Estos registros pueden guardar datos de 32, 16 u 8 bits.Estos registros pueden guardar datos de 32, 16 u 8 bits.

32 bits

16 bits

EAX

AX

AH AL

Page 17: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registros de los procesadores 2.2 Registros de los procesadores 80X8680X86

– ESP: Stack Pointer (Apuntador de Pila)ESP: Stack Pointer (Apuntador de Pila)

– EBP: Base Pointer (Apuntador Base)EBP: Base Pointer (Apuntador Base)– ESI: Source Index (Indice Fuente u Origen)ESI: Source Index (Indice Fuente u Origen)– EDI: Destination Index (Indice Destino)EDI: Destination Index (Indice Destino)– Estos registros pueden almacenar datos de 32 o 16 bits.Estos registros pueden almacenar datos de 32 o 16 bits.

32 bits

16 bits

ESP

SP

Page 18: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registro de Banderas2.2 Registro de Banderas

• Conjunto de bits que nos dan información Conjunto de bits que nos dan información sobre el estado del procesador y sobre el sobre el estado del procesador y sobre el resultado de la última operación efectuada.resultado de la última operación efectuada.

• Es el único registro accesible a nivel de bits.Es el único registro accesible a nivel de bits.• Algunos de estos bits son:Algunos de estos bits son:

– CF: Carry flagCF: Carry flag - ZF: Zero flag- ZF: Zero flag– SF: Sign flagSF: Sign flag - OF: Overflow flag- OF: Overflow flag– IF: Interrupt flagIF: Interrupt flag - DF: Direction flag- DF: Direction flag

. . . . . . . . OF DF IF SF ZF CF

Page 19: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.2 Registros de los procesadores2.2 Registros de los procesadores

• Registros de SegmentoRegistros de Segmento– CS: Code Segment (Segmento de Código)CS: Code Segment (Segmento de Código)– DS: Data Segment (Segmento de Datos)DS: Data Segment (Segmento de Datos)– SS: Stack Segment (Segmento de Pila)SS: Stack Segment (Segmento de Pila)– ES: Extra Segment (Segmento Extra)ES: Extra Segment (Segmento Extra)– FS: Extra Segment (Segmento Extra)FS: Extra Segment (Segmento Extra)– GS: Extra Segment (Segmento Extra)GS: Extra Segment (Segmento Extra)

» Son registros de 16 bits.Son registros de 16 bits.

» Se utilizan para generar las direcciones que el Se utilizan para generar las direcciones que el procesador envía por el bus de direcciones.procesador envía por el bus de direcciones.

Page 20: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.3 Modo real y protegido2.3 Modo real y protegido• Los microprocesadores 80286 y posteriores operan tanto Los microprocesadores 80286 y posteriores operan tanto

en modo real como en modo protegido.en modo real como en modo protegido.• Sólo el 8086 y 8088 operan en modo real.Sólo el 8086 y 8088 operan en modo real.• La operación en modo real permite La operación en modo real permite direccionar a direccionar a

segmentos de 64 KB de memoriasegmentos de 64 KB de memoria ..• En el modo real de operación, el direccionamiento a En el modo real de operación, el direccionamiento a

memoria se hace en forma segmentada. Una dirección memoria se hace en forma segmentada. Una dirección segmentada tiene 2 partes:segmentada tiene 2 partes:

Segmento : DesplazamientoSegmento : Desplazamiento• El registro CS trabaja en conjunto con el registro IP El registro CS trabaja en conjunto con el registro IP

(Apuntador de Instrucción) para generar las direcciones (Apuntador de Instrucción) para generar las direcciones hacia el programa.hacia el programa.

Page 21: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.4 Segmentación2.4 Segmentación• Técnica utilizada en los procesadores Intel Técnica utilizada en los procesadores Intel

8086/8088 para generar direcciones de 20 8086/8088 para generar direcciones de 20 bits usando registros de 16 bits.bits usando registros de 16 bits.– Para ilustrar esta técnica, suponga que se desea Para ilustrar esta técnica, suponga que se desea

ubicar la posición de una persona a partir de un ubicar la posición de una persona a partir de un punto de referencia, pero utilizando solamente punto de referencia, pero utilizando solamente números de 2 dígitos decimales.números de 2 dígitos decimales.

100 200 300 400 500 mts

Page 22: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.4 Segmentación2.4 Segmentación• Esto se puede realizar si se hace lo Esto se puede realizar si se hace lo

siguiente:siguiente:– Se divide la recta en bloques de 100 metros Se divide la recta en bloques de 100 metros

cada uno.cada uno.– Se utilizan dos números:Se utilizan dos números:

» Uno para indicar en cuál bloque está la personaUno para indicar en cuál bloque está la persona

» Otro para especificar su posición dentro del bloque.Otro para especificar su posición dentro del bloque.

– Posición = Bloque:PosiciónPosición = Bloque:Posición

100 200 300 400 500 mts0:50 3:45

Page 23: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.4 Segmentación2.4 Segmentación

• Para obtener la ubicación real debe Para obtener la ubicación real debe realizarse la siguiente operación:realizarse la siguiente operación:– Ubicación = Bloque*100 + PosiciónUbicación = Bloque*100 + Posición

» Posición1 = 0*100 + 50 = 50Posición1 = 0*100 + 50 = 50

» Posición2 = 3*100 + 45 = 345Posición2 = 3*100 + 45 = 345

100 200 300 400 500 mts0:50 3:45

Posición 1 Posición 2

Page 24: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.4 Segmentación2.4 Segmentación• En el caso de los procesadores 80X86, los En el caso de los procesadores 80X86, los

bloques se llaman SEGMENTOS y la bloques se llaman SEGMENTOS y la posición se llama DESPLAZAMIENTOposición se llama DESPLAZAMIENTO

• En modo real, cada una se describe con un En modo real, cada una se describe con un número de 16 bits.número de 16 bits.

• Operando en modo realOperando en modo real • Dirección Real = Segmento*16 + Desplazamiento.Dirección Real = Segmento*16 + Desplazamiento.

• La Dirección Real ya es una cantidad de 20 La Dirección Real ya es una cantidad de 20 bits.bits.

• Esto significa que toda dirección tiene 2 Esto significa que toda dirección tiene 2 partes: Un Segmento y un desplazamiento.partes: Un Segmento y un desplazamiento.

Page 25: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.4 Segmentación en Modo 2.4 Segmentación en Modo ProtegidoProtegido

• Es importante recalcar que cuando los Es importante recalcar que cuando los procesadores 80386 o posteriores operan en procesadores 80386 o posteriores operan en modo protegido, la segmentación funciona modo protegido, la segmentación funciona de manera muy diferente.de manera muy diferente.

• Cada segmento puede ser de hasta 4 Gbytes.Cada segmento puede ser de hasta 4 Gbytes.• Maneja memoria virtual, lo que implica un Maneja memoria virtual, lo que implica un

esquema de paginación.esquema de paginación.• Maneja también multitarea y un esquema de Maneja también multitarea y un esquema de

protección de memoria.protección de memoria.

Page 26: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5 Modos de direccionamientos2.5 Modos de direccionamientosI.I. Modos de direccionamiento de datosModos de direccionamiento de datos

1.1. Direccionamiento de registroDireccionamiento de registro

2.2. Direccionamiento inmediatoDireccionamiento inmediato

3.3. Direccionamiento directoDireccionamiento directo

4.4. Direccionamiento indirecto por registroDireccionamiento indirecto por registro

5.5. Direccionamiento base-más-índiceDireccionamiento base-más-índice

6.6. Direccionamiento relativo al registroDireccionamiento relativo al registro

7.7. Direccionamiento relativo a base-más-índiceDireccionamiento relativo a base-más-índice

8.8. Direccionamiento índice escalado (x386 ..)Direccionamiento índice escalado (x386 ..)

II.II. Modos de direccionamiento de memoria del programaModos de direccionamiento de memoria del programa1.1. Direccionamiento relativo al programaDireccionamiento relativo al programa

2.2. Direccionamiento directoDireccionamiento directo

3.3. Direccionamiento indirectoDireccionamiento indirecto

• Observe la gran cantidad de modos de direccionamiento de datos.Observe la gran cantidad de modos de direccionamiento de datos.

Page 27: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5 Modos de direccionamientos2.5 Modos de direccionamientos

SegmentoSegmento DesplazamientoDesplazamiento Propósito EspecialPropósito Especial

CSCS IPIP Dirección de instrucciónDirección de instrucción

SSSS SP o BPSP o BP Dirección de pila.Dirección de pila.

DSDS BX, DI, SI, un númeroBX, DI, SI, un número Dirección de datos.Dirección de datos.

ESES DI para instrucciones DI para instrucciones sobre cadenas.sobre cadenas.

Dirección de destino de Dirección de destino de cadenas.cadenas.

• No se permite la instrucción MOV de segmento a segmento.No se permite la instrucción MOV de segmento a segmento.• No se permite que el registro destino sea el segmento de código CS.No se permite que el registro destino sea el segmento de código CS.• No son peremidos tamaños mezclados de registros.No son peremidos tamaños mezclados de registros.

Page 28: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.1 Direccionamiento de registro2.5.1 Direccionamiento de registro

• Transfiere una copia de un byte o palabra Transfiere una copia de un byte o palabra desde el registro o localidad de memoria desde el registro o localidad de memoria fuente hacia el registro o localidad de fuente hacia el registro o localidad de memoria destino.memoria destino.

Ejemplo: Ejemplo: • MOV AX,BXMOV AX,BX Copia el contenido del reg. DX Copia el contenido del reg. DX

al reg. CX.al reg. CX.

MOV AX,BXMOV AX,BX Reg. BX Reg. AX

Generación de la direcciónFuente Destino

En los 386 y posteriores es posible transferir una palabra doble

Page 29: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.1 Direccionamiento de registro2.5.1 Direccionamiento de registro

• Ejemplos:Ejemplos:

MOV AL,BLMOV AL,BL Copia BL en AL.Copia BL en AL.

MOV AX,CXMOV AX,CX Copia CX en AX.Copia CX en AX.

MOV SI,DIMOV SI,DI Copia DI en SI.Copia DI en SI.

MOV BX,ESMOV BX,ES Copia ES en BXCopia ES en BX

MOV ES,DSMOV ES,DS No es permitidoNo es permitido

MOV BL,DXMOV BL,DX No es permitidoNo es permitido

MOV CS,AXMOV CS,AX No es permitidoNo es permitido

Page 30: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.2 Direccionamiento inmediato2.5.2 Direccionamiento inmediato

• Transfiere el dato (byte o palabra) Transfiere el dato (byte o palabra) inmediatamente al registro o localidad de inmediatamente al registro o localidad de memoria destino.memoria destino.

Ejemplo: Ejemplo: • MOV CH,3AHMOV CH,3AH Copia el contenido del reg. Copia el contenido del reg.

DX DX al reg. CX.al reg. CX.

MOV CH,3AHMOV CH,3AH 3AH Reg. CH

Generación de la direcciónFuente Destino

En los 386 y posteriores es posible transferir una palabra doble

Page 31: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.2 Direccionamiento inmediato2.5.2 Direccionamiento inmediato

• Ejemplos:Ejemplos:

MOV BL,44MOV BL,44 Copia 44 dec. en BLCopia 44 dec. en BL

MOV AX,44HMOV AX,44H Copia 0044H en AXCopia 0044H en AX

MOV SI,0MOV SI,0 Copia 0000H en SICopia 0000H en SI

MOV AL,’A’MOV AL,’A’ Copia A ASCII en ALCopia A ASCII en AL

MOV AX,’AB’MOV AX,’AB’ Copia BA ASCII en AXCopia BA ASCII en AX

Page 32: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.3 Direccionamiento directo2.5.3 Direccionamiento directo• Se aplica a una istrucción MOV entre una Se aplica a una istrucción MOV entre una

localidad de memoria y AL, Ax o EAX. La localidad de memoria y AL, Ax o EAX. La dirección está formada por la suma del dirección está formada por la suma del desplazamiento más la dirección dada por desplazamiento más la dirección dada por defecto en el segmento de datos.defecto en el segmento de datos.

Ejemplo: Ejemplo:

MOV AL,[1234H] Copia el contenido de la localidad MOV AL,[1234H] Copia el contenido de la localidad de mem. 11234H a AL. de mem. 11234H a AL.

MOV [1234H],AXMOV [1234H],AX Reg. AXDirección[11234H]

Generación de la direcciónFuente Destino

Cuando DS=1000 DS x 10H + Desplazamiento

10000H + 1234H

Page 33: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.4 Direccionamiento indirecto por 2.5.4 Direccionamiento indirecto por registroregistro

• Permite direccionar cualquier localidad de Permite direccionar cualquier localidad de memoria mediante una dirección de memoria mediante una dirección de desplazamiento contenida en: BP, BX, DI y desplazamiento contenida en: BP, BX, DI y SI.SI.

Ejemplo: Ejemplo: • MOV [BX],CL MOV [BX],CL Copia el contenido del reg. Copia el contenido del reg.

CL CL a la localidad de memoria a la localidad de memoria direccionada por BX, en DS.direccionada por BX, en DS.

MOV [BX],CLMOV [BX],CL Reg. CLDirección[10300H]

Generación de la direcciónFuente Destino

Cuando DS=1000 DS x 10H + BX

10000H + 0300H

Page 34: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.5 Direccionamiento base-más-2.5.5 Direccionamiento base-más-índiceíndice

• Se utiliza un reg. base (BP o BX) y un reg. Se utiliza un reg. base (BP o BX) y un reg. índice (DI o SI) para direccionar índice (DI o SI) para direccionar indirectamente la memoria.indirectamente la memoria.

Ejemplo: Ejemplo: MOV [BX+SI],BP MOV [BX+SI],BP Copia el contenido del reg. BPCopia el contenido del reg. BP a a

la dirección de mem. direccionada la dirección de mem. direccionada por BX + SI en el seg. de datos.por BX + SI en el seg. de datos.

MOV [BX+SI],BPMOV [BX+SI],BP Reg. BPDirección[10500H]

Generación de la direcciónFuente Destino

Cuando DS=1000 DS x 10H + BX + SI

10000H + 0300H + 0200H

Page 35: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.6 Direccionamiento relativo a 2.5.6 Direccionamiento relativo a registroregistro

• Los datos de un segmento de memoria son Los datos de un segmento de memoria son direccionados sumando el desplazamiento direccionados sumando el desplazamiento al contenido de un registro base o índice al contenido de un registro base o índice (BP, BX, DI o SI).(BP, BX, DI o SI).

Ejemplo: Ejemplo: MOV CL,[BX+4] MOV CL,[BX+4] Copia el contenido de la localidad Copia el contenido de la localidad

de mem. del DS direccionada por de mem. del DS direccionada por BX más 4 en CL.BX más 4 en CL.

MOV CL,[BX+4]MOV CL,[BX+4] Reg. CLDirección[10304H]

Generación de la direcciónFuente Destino

Cuando DS=1000 DS x 10H + BX + 4

10000H + 0300H + 4

Page 36: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.7 Direccionamiento relativo a 2.5.7 Direccionamiento relativo a base-más-índicebase-más-índice

• Se utiliza un reg. base (BP o BX) y un reg. Se utiliza un reg. base (BP o BX) y un reg. índice (DI o SI) más un desplazamiento índice (DI o SI) más un desplazamiento para formar la dirección de memoria. Es para formar la dirección de memoria. Es utilizado a menudo para direccionar un utilizado a menudo para direccionar un arreglo bidimensional de datos de memoria.arreglo bidimensional de datos de memoria.

Ejemplo: Ejemplo:

MOV ARRAY[BX+SI],DXMOV ARRAY[BX+SI],DX Copia DX a la localidad de mem Copia DX a la localidad de mem del DS direccionada por la del DS direccionada por la

suma suma de ARRAY, BX y SI.de ARRAY, BX y SI.

MOV ARRAY[BX+SI],DXMOV ARRAY[BX+SI],DX Reg. DXDirección[11500H]

Generación de la direcciónFuente Destino

Cuando DS=1000, ARRAY=1000H DS x 10H + ARRAY + BX + SI

10000H + 1000H + 0300H + 0200H

Page 37: IPN Escuela Superior de Cómputo MICROPROCESADORES II

2.5.8 Direccionamiento índice 2.5.8 Direccionamiento índice escaladoescalado

• Exclusivo para procesadores x386 y posteriores. Utiliza Exclusivo para procesadores x386 y posteriores. Utiliza dos registros de 32 bits (uno base y otro ídice). El reg. dos registros de 32 bits (uno base y otro ídice). El reg. índice es multiplicado por un factor de escalamiento 1X, índice es multiplicado por un factor de escalamiento 1X, 2X, 4X u 8X. El factor 1X está implicito. 2X es empleado 2X, 4X u 8X. El factor 1X está implicito. 2X es empleado para direccionar arreglos de mem. de palabras de 16 bits. para direccionar arreglos de mem. de palabras de 16 bits. 4X para palabras dobles y 8X para areglos de mem. de 4X para palabras dobles y 8X para areglos de mem. de palabra cuádruple.palabra cuádruple.

Ejemplo: Ejemplo: MOV [EBX+2x ESI],AXMOV [EBX+2x ESI],AX Copia AX en la loc. De mem. Del DS Copia AX en la loc. De mem. Del DS

direccionada pro la suma EBX más dos direccionada pro la suma EBX más dos veces ESI.veces ESI.

MOV [EBX+2x ESI],AXMOV [EBX+2x ESI],AX Reg. AXDirección[10700H]

Generación de la direcciónFuente Destino

Cuando DS=1000, EBX=300H, ESI=200H

DS x 10H + EBX + 2 x ESI10000H + 00000300H + 00000400H

Page 38: IPN Escuela Superior de Cómputo MICROPROCESADORES II
Page 39: IPN Escuela Superior de Cómputo MICROPROCESADORES II

GRACIAS POR NO DOMIRSEGRACIAS POR NO DOMIRSE