Tema 5.1: Presentación de datos en pantalla

Tema 5.1: Presentación de datos en pantalla ƒ El registro de flags del i8086 ƒ Instrucciones de transferencia ƒ Instrucciones de transferencia de cont

7 downloads 113 Views 397KB Size

Recommend Stories


51
25.2.2006 ES Diario Oficial de la Unión Europea L 55/51 DECISIÓN DE LA COMISIÓN de 24 de febrero de 2006 relativa a la introducción de la vacunaci

51
PROFESIONALES Y BUROCRACIA: DESPROFESIONALIZACION, PROLETARIZACION Y PODER PROFESIONAL EN LAS ORGANIZACIONES COMPLEJAS Mauro F. Guillen* Universidad

Story Transcript

Tema 5.1: Presentación de datos en pantalla ƒ El registro de flags del i8086 ƒ Instrucciones de transferencia ƒ Instrucciones de transferencia de control ƒ Instrucciones aritméticas: comparación ƒ Representación de los caracteres: código ASCII ƒ Interrupciones ƒ Instrucciones de interrupción ƒ Servicios de interrupción del MS-DOS. INT 21h: ƒLectura / escritura de un carácter desde el teclado ƒLectura / escritura de una cadena de caracteres desde teclado ƒSolicitud al MS-DOS de terminación del programa

Laboratorio de Estructura de Computadores

Bibliografía básica ƒ 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 Editorial Anaya-Multimedia. 1996

2

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

El registro de flags ƒ Al ejecutar las instrucciones el i8086 debe conocer el resultado de dicha ejecución. Para ello cuenta con el registro de flags o indicadores Registro de flags en el i8086

3

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Representación de los flags en el programa Code View

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Instrucciones de transferencia de datos ƒ Nombre:

LEA

ƒ Formato:

LEA destino, origen

ƒ Descripción: Calcula la dirección absoluta de origen. Deja en DS la dirección del segmento de origen y en destino el desplazamiento ƒ Ejemplo: LEA DX, PEPE

4

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Instrucciones de transferencia de control (I) ƒ Modifican la secuencia normal de ejecución de un programa ƒ Las instrucciones que actúan sobre el contador de programa (PC) controlan la secuencia de ejecución de un programa. Son un caso especial de transferencia, donde el operando destino es PC ƒ Clasificación: ƒ Saltos Incondicionales: JMP etiqueta Ð IP ← etiqueta Condicionales: J{condición} etiqueta Ð Si condición, IP ← etiqueta. Si no, IP ← sig.I. ƒ Saltos incondicionales: siempre se produce el salto ƒ Saltos condicionales: se realiza el salto si se da la condición sobre los flags

5

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Instrucciones de transferencia de control (II)

6

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Instrucciones de transferencia de control (III) ƒ Nombre:

LOOP

ƒ Formato:

LOOP desplazamiento

ƒ Descripción: Si CX es diferente de cero, entonces IP = IP + desplazamiento. Si CX es cero entonces ejecuta la instrucción siguiente. El desplazamiento debe estar comprendido entre -128 y 127 Mediante esta instrucción es posible implementar bucles. También son factibles los bucles anidados pero debemos hacer uso de la pila ƒ Ejemplos: MOV CX, contador

; CX = nº. de veces que ejecuta el bucle

BUCLE: Instrucciones dentro del bucle LOOP BUCLE

7

; CX = CX -1. Si CX ≠ 0 saltar a Bucle

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Instrucciones aritméticas: comparación ƒ Nombre:

CMP

ƒ Formato:

CMP destino, origen

ƒ Descripción: Compara los operandos origen y destino modificando el registro de flags Realmente lo que hace es realizar la resta de ambos operandos, pero no almacena el resultado. Así, si el resultado es negativo, origen será mayor que destino. Si el resultado es positivo origen será menor que destino, y si cero serán iguales ƒ Ejemplos: CMP AX, DX

; Compara los operandos AX y DX

CMP CL, ‘A’

; Compara CL con el código ASCII del carácter A

CMP DL, [BX]

; Compara DL con el contenido de la posición de memoria ; apuntada por BX

8

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Representación de cadenas de caracteres (I) ƒ Representaciones alfanuméricas: ƒ Codifican mediante un grupo de bits (6, 7, 8, 16) cada uno de los caracteres a representar ƒ Ejemplos de códigos alfanuméricos: ƒ 6 bits (64 caracteres posibles) Fieldata y BCDIC ƒ 7 bits (128 caracteres posibles) ASCII ƒ 8 bits (256 caracteres posibles) ASCII extendido y EBCDIC ƒ 16 bits (65536 caracteres posibles) UNICODE

9

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Representación de cadenas de caracteres (II)

1 0

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Representación de cadenas de caracteres (III)

1 1

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Interrupciones (I) ƒ Son señales que se le envían a la CPU para que termine la ejecución de la instrucción en curso y atienda una petición determinada ƒ Pueden ser de dos tipos: ƒ Interrupciones hardware: son generadas por los circuitos asociados al microprocesador en respuesta a algún evento como pulsar una tecla del teclado. A su vez se dividen en: ƒ Interruociones enmascarables. Pueden ser inhibidas desde programa ƒ Interrupciones no enmascarables. Corresponden a situaciones de emergencia del computador: error de paridad, fallo de potencia y no pueden inhibirse ƒ Interrupciones software: generadas por un programa para llamar a ciertas subrutinas almacenadas en memoria ROM o RAM. Es posible cambiarlas y crear otras nuevas

1 2

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Interrupciones (II) Interrupciones software (I) ƒ Los pasos para llamar a una interrupción son: ƒ Identificar qué interrupción hace lo que deseamos ƒ Preparar los datos que requiera la interrupción ƒ Indicar cuál es el número de la función que deseamos ƒ Llamar a la interrupción ƒ Las interrupciones implican una ruptura en la secuencia de nuestro programa. Se salta al código que da ese servicio y cuando ha terminado, se vuelve a nuestro programa ƒ Las interrupciones salvaguardan los flags y los registros que emplean

1 3

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Interrupciones (III) Interrupciones software (II)

Quiero sellos, por favor.

Quiero sellos, por favor. ¿Cuantos quiere?

EDIFICIO DE CORREOS MESA 5: SELLOS

1 4

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Perdone, creo que se ha confundido

EDIFICIO DEL INEM MESA 5: CONTRATACIÓN

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Instrucciones de interrupción ƒ Nombre: INT ƒ Formato: INT tipo_interrupción ƒ Descripción: INT activa el procedimiento de interrupción especificado por el operando. La dirección del vector de interrupción se calcula multiplicando por 4 el operando, que es un valor entre 0 y 255 El vector de interrupción se compone de dos palabras: la primera palabra es el desplazamiento y la segunda el segmento ƒ Ejemplos: INT 21h ; Interrupción 21h ƒ Nombre: IRET ƒ Formato: IRET ƒ Descripción: Devuelve el control a la dirección de retorno salvada en la pila y restaura los flags. Se emplea para finalizar un procedimiento de interrupción ƒ Ejemplos: IRET ; retorno de interrupción

1 5

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (I)

1 6

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (II) Lectura de un carácter por teclado Función 1h ƒ El número de la función debe ir en AH ƒ Devuelve el código ASCII de la tecla pulsada en AL ƒ Muestra el carácter que se ha pulsado en pantalla

Función 8h

En el segmento de código

Mov ah, 01h Int 21h

En el segmento de código

ƒ El número de la función debe ir en AH

1 7

ƒ Devuelve el código ASCII de la tecla pulsada en AL

Mov ah, 08h

ƒ No muestra el carácter que se ha pulsado en pantalla. Útil para introducir palabras clave a un programa

Int 21h

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (II) Escritura de un carácter por pantalla Función 2h ƒ El número de la función debe ir en AH ƒ Se debe indicar el código ASCII del carácter a imprimir en DL ƒ Existen dos formas de pasar el código ASCII a DL ƒ Devuelve el código ASCII del carácter impreso en AL

En el segmento de código

1 8

Mov ah, 02h

Mov ah, 02h

Mov dl, ‘A’

Mov dl, 41h

Int 21h

Int 21h

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (III) Lectura de una cadena de caracteres (I) Función 0Ah ƒ El número de función se debe proporcionar en AH ƒ En DS:DX se debe poner la dirección y el desplazamiento en el que se encuentra la estructura de la cadena ƒ En el segmento de datos se define la estructura siguiente: ƒ Máximo número de caracteres a leer más uno ƒ Un byte en blanco que se rellenará con el número de caracteres leídos ƒ Tantos bytes como caracteres se deseen leer. Normalmente se emplea DUP para definirlo ƒ Un byte para almacenar el ENTER En el segmento de código En el segmento de datos

Cadena db 9,0,0,0,0,0,0,0,0,0,0

Mov ah, 0Ah Lea dx, cadena Int 21h

1 9

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (III) Lectura de una cadena de caracteres (II) Cadena Máximo número de caracteres más uno Número de caracteres leídos sin el enter Caracteres de la cadena

Espacio reservado para el enter

2 0

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (III) Escritura de una cadena de caracteres Función 09h ƒ El número de función se debe proporcionar en AH ƒ En DS:DX se debe poner la dirección y el desplazamiento en el que se encuentra la cadena que se desea imprimir ƒ La cadena debe terminar en $ obligatoriamente y estar definida en el segmento de datos

En el segmento de datos

Cadena db’Hola mundo$’

En el segmento de código

Mov ah, 09h Lea dx, cadena Int 21h

2 1

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Servicios de interrupción del MS-DOS (III) Solicitud de terminación de programa Función 4Ch ƒ El número de función debe ir en AH ƒ El ERRORLEVEL que se desee devolver irá en AL ƒ El ERRORLEVEL devuelto podrá ser tratado desde el MS-DOS con la orden: IF ERRORLEVEL n acción

En el segmento de código

Mov ah, 4Ch Mov al, 1 Int 21h

2 2

Área de Arquitectura y Tecnología de Computadores Departamento de Automática Universidad de Alcalá

Tema 5.1: Presentación de datos en pantalla Laboratorio de Estructura de Computadores

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.