Tema 6. Segmentación y modos de direccionamiento

Documentos relacionados
Tema 3: ASCII y operaciones de desplazamiento y lógicas

Tema 1. Fundamentos del lenguaje ensamblador

Tema 5: La pila, las macros y los procedimientos

Examen de teoría (5 puntos)

Examen de teoría (5 puntos)

Tema 4. Lenguaje máquina y lenguaje ensamblador

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

ARQUITECTURA INTERNA DEL µp8086

Área Académica: Sistemas Computacionales

Tema 4. Lenguaje máquina y lenguaje ensamblador

Tema 4: Lenguaje máquina - Lenguaje ensamblador

Examen de teoría (4 puntos)

Tema 5. Presentación de datos por pantalla

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad I: Arquitectura y Programación de un Microprocesador (8086)

Tema 4. La pila, los procedimientos y las macros

Práctica 2. Registros y posiciones de memoria

Tema 5.1: Presentación de datos en pantalla

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Arquitectura Interna del 8088

Tema 3. Operaciones aritméticas y lógicas

Arquitectura (Procesador familia 80 x 86 )

1.2.- EL MICROPROCESADOR.

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Tema: Lenguaje ensamblador embebido

Un. VIII. Generación de Código Objeto

Conceptos de Arquitectura de Computadoras Curso 2015

Registros Arquitectura x86. M. en C. Erika Vilches

ESTRUCTURA Y ORGANIZACIÓN DE COMPUTADORES

6-REGISTROS DEL 8086 Y DEL 80286

INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS MAESTRO: ERNESTO LEAL ALUMNOS: LUIS CARLOS BARRERA ORTIZ STHEPANIE FLORES GUILLEN

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

Tema 4: Las interrupciones y la ROM-BIOS

INSTITUTO TECNOLÓGICO DE CHIHUAHUA II

(2) Unidad 2. Modelo de Programación del 80x86 de Intel SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple.

Trabajo Práctico Nro 3: Assembler

Introducción al EMU8086

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

El Diseño de un Lenguaje Máquina

Tema 3: Operaciones aritméticas y lógicas

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

Tema 5. Formato de instrucciones. Directivas, instrucciones de cadena y programas de varios módulos

Departamento de Sistemas e Informática

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Nombre del módulo: Instalación de Sistemas Microprocesados. Guía sobre Programación en Ensamblador usando Emulador (emu8086)

P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente:

MOV ;movemos a ax el contenido de la cadena "A" eso significa el y data del segmento de datos

SISTEMAS BASADOS EN MICROPROCESADORES

Práctica 4. Lenguaje máquina y lenguaje ensamblador

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

Examen de teoría (5 puntos)

Instrucciones Lógicas y Registro de Banderas

INT 21H Función 02H Salida de Carácter LLAMADA: AH = 02H DL = Código ASCII a enviar al dispositivo de salida. DEVUELVE: NADA.

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

TEMA III: OPERACIONES CON LOS DATOS

Instrucciones de Control de Flujo y Usos de la Pila

Intel 8086 modelo básico (primera parte) Registros:

Tema 2: Sistemas de numeración

Los números naturales y enteros en el 80X86 y en LAN

Tema 2. Presentación de datos por pantalla. La ROM-BIOS

Práctica 3 - Arquitectura del CPU

Resumen de las instrucciones del 8086/8088

Práctica 1. Sistemas de Numeración y Representación de la Información

Instrucción De Salto Incondicional

Tema 3. Operaciones aritméticas y lógicas

Circuitos combinacionales aritméticos (Parte II)

La arquitectura del 8086/8088

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

Cuadro Comparativo Registros de Microprocesadores

Bus de direcciones. Bus de datos

PRONTUARIO I. INFORMACIÓN GENERAL

5 - Lenguaje Ensamblador

FACULTAD DE INGENIERÍAS Y ARQUITECTURA SÍLABO

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

USO DE MEMORIA Y PERIFÉRICOS CON EMU8086. Kervin Sánchez Herrera.

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

Examen Parcial de Arquitectura de Computadoras Prof: Ing. José ESTRADA MONTES

MANEJO DEL MOUSE EN LENGUAJE C++

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4)

Organización de Computadoras. Clase 7

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Relación de Problemas I

Digital III. El Microprocesador i80c86

EL EMU8086 Y EL MICROPROCESADOR 8086.

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Transferir datos por medio del puerto paralelo utilizando un lenguaje de bajo nivel. (Lenguaje ensamblador auxiliándose del macroensamblador MASM)

[etiqueta:] REP MOVSn

LABORATORIO DE PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR x86-16bits

DIRECTIVAS DEL ASM86

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue:

EJEMPLOS EJERCICIOS RESUELTOS MOV CX,320*200 ; ESTA OPERACIÓN LA REALIZA EL ENSAMBLADOR XOR DI,DI CLD REP STOSB

Es importante tener esto en cuanta a la hora de acceder a los datos para operar con ellos.

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

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

8.4. El software en los μprocesadores

Instrucciones del microprocesador

Práctica 3: El teclado del PC

Transcripción:

Tema 6. Segmentación y modos de direccionamiento Laboratorio de Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 21 Índice Segmentación Modos de direccionamiento Direccionamiento relativo Instrucciones de desplazamiento Instrucciones lógicas Ejemplo de acceso a una cadena mediante: Direccionamiento relativo a base Direccionamiento relativo mediante índice 1

Transparencia: 3 / 21 Segmentación en el i80x86 El microprocesador 8086 tiene catorce registros de 16 bits. Con 16 bits se puede acceder a 2 16 o lo que es igual a 64 K El 8086 emplea un truco para acceder a 1 MB = 2 20 El truco consiste en dividir el mega en trozos de 64 K que llama segmentos El programa en todo momento debe conocer en qué segmento están los datos o el código y cuál es la posición dentro del segmento El cálculo de la dirección física lo realiza según: R.Base x 10h + desplazamiento Los registros de segmento son CS: para el segmento de código DS: para el segmento de datos SS: para el segmento de pila ES: segmento extra de datos Gracias a la segmentación se facilita la multiprogramación y existen zonas diferentes para el código, para los datos y para la pila Transparencia: 4 / 21 Modos de direccionamiento Modos de direccionamiento mp 8086/88 Ejemplos Inmediato Inmediato MOV AX, 15H Directo De registro De memoria De página base A registro (con segmentación) Directo MOV AX, BX MOV CX, ETIQUETA Indirecto Implícito Relativo Al contador de programa A un registro A un registro índice A pila (sólo saltos) Relativo a base Mediante índice Mediante índice y base (Relativo a pila) (No existe) Algunas instrucciones MOV [BX]+ARTÍCULO, AL MOV DL, VECTOR[SI] MOV AH, [BX][SI]+ARRAY 2

Transparencia: 5 / 21 Direccionamiento relativo Se emplea para apuntar a direcciones de memoria dentro de un segmento Se emplean registros Base y registros Índices. Si BX se emplea como registro base, entonces el registro de segmento que se emplea es el registro DS. Si es BP el registro base, entonces el registro de segmento empleado es el de la pila SS Existen diferentes modos de direccionamiento relativo en el 8086: indirecto a registro, relativo a base, mediante índice, mediante índice y base y mediante desplazamiento, índice y base ADD DX, [BX] MOV DL, [BP+6] XOR rojo[bx], DX Transparencia: 6 / 21 Instrucciones de desplazamiento (I) Todas tiene el mismo formato Formato: Desplazamiento destino, veces Descripción: Desplazan el destino tantas veces como se indique. Si el destino es mayor que uno, el número de veces se debe indicar en el registo CL Si se especifica un desplazamiento sobre un registro de ocho bits, la parte alta o la parte baja de los registros AX, BX, CX o DX, el desplazamiento será local a esos ocho bits. Los bits que se desplazan se van copiando en el flag de acarreo. El i80x86 trabaja con el sistema de representación de complemento a 2 con lo que los desplazamientos aritméticos se realizarán en dicho formato. Los deplazamientos permitidos son aritméticos, lógicos, rotaciones y rotaciones a través del acarreo tanto hacia la derecha como hacia la izquierda 3

Transparencia: 7 / 21 Instrucciones de desplazamiento (II) Nombre: SAL Formato: SAL destino, contador Descripción: Desplazará aritméticamente a la izquierda el operando destino tantos bits como indique el valor del contador, rellenando con ceros los bits que quedan libres por la derecha MOV AX, 2 ; AX = 2 SAL AX, 1 ; AX = 4 SAL AX, CL ; AX = 16 Transparencia: 8 / 21 Instrucciones de desplazamiento (III) Nombre: SAR Formato: SAR destino, contador Descripción: Desplazará a la derecha aritméticamente el operando destino tantos bits como indique el valor del contador, rellenando con el bit de signo los bits que quedan libres por la izquierda MOV AX, 16 ; AX = 16 SAR AX, 1 ; AX = 8 SAR AX, CL ; AX = 2 4

Transparencia: 9 / 21 Instrucciones de desplazamiento (IV) Nombre: SHL Formato: SHL destino, contador Descripción: Desplazará a la izquierda lógicamente el operando destino tantos bits como indique el valor del contador, rellenando con ceros los bits que quedan libres por la derecha. El comportamiento es igual que el de la instrucción SAL MOV AX, 0FFFFh ; AX = FFFFh (-1) SHL AX, 1 ; AX = FFFEh (-2) SHL AX, CL ; AX = FFF8h (-8) Transparencia: 10 / 21 Instrucciones de desplazamiento (V) Nombre: SHR Formato: SHR destino, contador Descripción: Desplazará a la derecha lógicamente el operando destino tantos bits como indique el valor del contador, rellenando con ceros los bits que quedan libres por la izquierda. MOV AX, 2 ; AX = FFF8h (-8) SHR AX, 1 ; AX = 7FFCh (32764) SHR AX, CL ; AX = 1FFFh (8191) 5

Transparencia: 11 / 21 Instrucciones de desplazamiento (VI) Nombre: ROL Formato: ROL destino, contador Descripción: Rota los bits del operando destino hacia la izquierda tantos bits como indique el valor del contador, rellenando con los bits que saldrían por la izquierda los bits que quedan libres por la derecha. MOV AX, 8000h ; AX = 8000h ROL AX, 1 ; AX = 0001h ROL AX, CL ; AX = 0004h Transparencia: 12 / 21 Instrucciones de desplazamiento (VII) Nombre: ROR Formato: ROR destino, contador Descripción: Rota los bits del operando destino hacia la derecha tantos bits como indique el valor del contador, rellenando con los bits que saldrían por la derecha los bits que quedan libres por la izquierda. MOV AX, 8001h ; AX = 8001h ROR AX, 1 ; AX = C000h ROR AX, CL ; AX = 300 6

Transparencia: 13 / 21 Instrucciones de desplazamiento (VIII) Nombre: RCL Formato: RCL destino, contador Descripción: Rota los bits del operando destino hacia la izquierda a través del flag de acarreo tantos bits como indique el valor del contador. MOV AX, 8000h acarreo a 1 ; AX = 8000h y además suponemos el flag de RCL AX, 1; AX = 0001h RCL AX, CL ; AX = 0006h y el flag de acarreo estará a 0 Transparencia: 14 / 21 Instrucciones de desplazamiento (y IX) Nombre: RCR Formato: RCR destino, contador Descripción: Rota los bits del operando destino hacia la derecha tantos bits como indique el valor del contador a través del flag de acarreo. MOV AX, 8001h ; AX = 8001h y suponemos el flag de acarreo a 1 ROR AX, 1 ; AX = C000h ROR AX, CL ; AX = 7000h y el flag de acarreo estará a 0 7

Transparencia: 15 / 21 Instrucciones lógicas (I) Nombre: AND Formato: AND destino, origen Descripción: Realiza a nivel de bits la operación lógica AND entre el origen y el destino. Tanto el origen como el destino pueden ser operandos de 8 o de 16 bits, pero ambos del mismo tamaño. AND AX, BX ; Si AX = 7777h y BX = 2222h entonces ; AX AND BX = 2222h AND AX, 1 ; AX = 4 entonces AX AND 1 = 0 AND AX, 0FFFFh ; Sea cual sea el valor de AX, AX AND ; 0FFFFh = AX Transparencia: 16 / 21 Instrucciones lógicas (II) Nombre: OR Formato: OR destino, origen Descripción: Realiza a nivel de bits la operación lógica OR entre el origen y el destino. Tanto el origen como el destino pueden ser operandos de 8 o de 16 bits, pero ambos del mismo tamaño. OR AX, BX ; Si AX = 7777h y BX = 2222h entonces AX ; OR BX = 7777h OR AX, 1 ; Si AX = 4 entonces AX OR 1 = 5 OR AX, 0h ; Sea cual sea el valor de AX, AX OR 0FFFFh = AX 8

Transparencia: 17 / 21 Instrucciones lógicas (III) Nombre: XOR Formato: XOR destino, origen Descripción: Realiza a nivel de bits la operación lógica XOR entre el origen y el destino. Tanto el origen como el destino pueden ser operandos de 8 o de 16 bits, pero ambos del mismo tamaño. XOR AX, BX ; Si AX = 7777h y BX = 2222h entonces AX XOR ; BX = 5555h XOR AX, 1 ; Si AX = 4 entonces AX XOR 1 = 5 XOR AX, 0FFFFh ; Si AX = 7777h AX XOR 0FFFFh = 8888h Transparencia: 18 / 21 Instrucciones lógicas (y IV) Nombre: NOT Formato: NOT destino Descripción: Realiza a nivel de bits la operación lógica NOT del destino. El destino pueden ser operandos de 8 o de 16 bits, pero ambos del mismo tamaño. Ejemplo: NOT AX ; Si AX = 7777h entonces NOT AX= 8888h 9

Transparencia: 19 / 21 Ejemplo de acceso a una cadena mediante direccionamiento relativo a base DOSSEG.MODEL SMALL.STACK 100h.DATA numeros DB 1,2,3,4,5,6 ; Números de la ; cadena..code Inicio: MOV AX, @DATA ; Indicamos donde se MOV DS, AX LEA BX, numeros MOV CX, 6 ; encuentran los ; datos Bucle: MOV DL, [BX] ; En DS:BX dirección ;cadena ; Indicamos el ;número de dígitos END Inicio ; Llevamos a DL el ; valor del número ADD DL, 7 ; Le sumamos 7 MOV [BX], DL ; Dejamos el número ;actualizado INC BX ; Incrementamos ;BX en 1 LOOP Bucle MOV AH, 4Ch ;Solicitamos al sistema ; operativo INT 21h ;la terminación de ;nuestro programa Transparencia: 20 / 21 Ejemplo de acceso a una cadena mediante direccionamiento relativo mediante índice DOSSEG.MODEL SMALL.STACK 100h.DATA numeros DB 1,2,3,4,5,6; Números de la ; cadena..code Inicio: MOV AX, @DATA ; Indicamos ;donde se MOV DS, AX ; encuentran los ; datos MOV SI, 0 ; Ponemos el registro SI a 0 MOV CX, 6 ; Indicamos el número de ; dígitos Bucle: ADD numeros[si], 7 INC SI LOOP Bucle MOV AH, 4Ch ; Solicitamos al sistema ; operativo INT 21h ; la terminación de nuestro ; programa END Inicio 10

Transparencia: 21 / 21 Bibliografía 8088-8086/8087 programación ensamblador en entorno MS-DOS Miguel Angel Roselló. Ed. Anaya Multimedia Microprocesadores: el 8088 / 86 Fernando Remiro Domínguez, Agustín Martín García Ed. Akal-Bibiloteca tecnológica Lenguajes ensambladores R. Martínez Tomás. Ed. Paraninfo Lenguaje ensamblador de los 80x86 Jon Beltrán de Heredia Ed. Anaya-Multimedia. 1996 11