T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion...

18
1 Tema 2. Presentación de datos por pantalla. La ROM-BIOS Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 2 / 24 Trans.: 2 / 35 Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores Índice El registro de flags del i8086 Instrucciones de transferencia de datos (continuación) 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. Servicios de interrupción de la ROM-BIOS. INT 10h. INT 16h.

Transcript of T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion...

Page 1: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

1

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

Laboratorio de Estructura y Organización de Computadores

Grados en Ingeniería Informática e Ingeniería de Computadores

Curso 2012-2013

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 2 / 24

Trans.:

2 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Índice

  El registro de flags del i8086   Instrucciones de transferencia de datos (continuación)   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.   Servicios de interrupción de la ROM-BIOS. INT 10h.

INT 16h.

Page 2: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

2

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 3 / 24

Trans.:

3 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología 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

Representación de los flags en el programa Code View Registro de flags en el i8086

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 4 / 24

Trans.:

4 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología 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, OPERANDO1

  Alternativa usando la directiva OFFSET: MOV DX, OFFSET OPERANDO1 Funciona en tiempo de ensamblado. Para desplazamientos constantes.

Page 3: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

3

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 5 / 24

Trans.:

5 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Instrucciones de transferencia de control (I)

  Modifican la secuencia normal de ejecución de un programa actuando sobre el contador de programa (PC).

Clasificación:   Saltos: Incondicionales: JMP etiqueta ( IP etiqueta )

Condicionales: J{condición} etiqueta Si condición, IP etiqueta. Si no, IP sig.Instrucción

  Llamadas a subrutinas: Procedimientos: CALL (saltos con retorno) Interrupciones:

INT Software BIOS: S.O.

Hardware

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 6 / 24

Trans.:

6 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Instrucciones de transferencia de control (II)

  Las condiciones más frecuentes admitidas por el 80x86/8088 son:

Z – Cero G - Mayor que J [N] E - Igual J [N] L - Menor que [E] C - Acarreo A - Superior* S - Signo B - Inferior* O - Overflow (Desbordamiento)

P - Paridad J [N] PE - Paridad par PO - Paridad impar CXZ - CX=0

*Se refieren a operandos sin signo

Page 4: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

4

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 7 / 24

Trans.:

7 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Instrucciones de transferencia de control (y III)

  Bucles: operación (decremento de contador) + salto condicional sobre la operación

  LOOP Etiq ;realiza un bucle: CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

Ejemplo: MOV CX, 4 Bucle:

INC BX ADD BX, CX LOOP Bucle

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 8 / 24

Trans.:

8 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Instrucciones de 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

Page 5: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

5

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 9 / 24

Trans.:

9 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología 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

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 10 / 24

Trans.:

10 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Representación de cadenas de caracteres (II)

  Las frases se forman agrupando caracteres. Existen varias alternativas:

  Cadenas de longitud fija: Se define una longitud máxima para todas las cadenas.

  Cadenas de longitud variable: –  Con carácter separador

–  Con longitud explícita

Page 6: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

6

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 11 / 24

Trans.:

11 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Representación de cadenas de caracteres (y III)

48 = 30h 49 = 31h

50 = 32h

57 = 39h

+32 = +20h 0...32 Control

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 12 / 24

Trans.:

12 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología 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:   Interrupciones 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

Page 7: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

7

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 13 / 24

Trans.:

13 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Interrupciones (y II)

  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

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 14 / 24

Trans.:

14 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Instrucciones de interrupción (I)

  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

  Ejemplo: –  INT 21h ; Interrupción 21h

Page 8: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

8

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 15 / 24

Trans.:

15 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Instrucciones de interrupción (y II)

  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

  Ejemplo: –  IRET ; retorno de interrupción

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 16 / 24

Trans.:

16 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

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

INT 21h AH Función

01h Esperar para leer un carácter del teclado con eco en pantalla. Devuelve en AL el código ASCII del carácter leído.

02h Escribir un carácter en la pantalla. El código ASCII del carácter a escribir debe ir en DL.

08h Esperar para leer un carácter del teclado SIN eco en pantalla. Devuelve en AL el código ASCII del carácter leído.

09h Escribe una cadena de caracteres, almacenada en la memoria, en la pantalla. La cadena debe terminar en el carácter $. La dirección de la cadena se pasa en DS:DX.

0Ah Lee una cadena de caracteres del teclado y la almacena en un área de la memoria. La dirección del área de almacenamiento se pasa en DS:DX.

Page 9: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

9

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 17 / 24

Trans.:

17 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

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

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   El número de la función debe ir en AH   Devuelve el código ASCII de la tecla pulsada en AL   No muestra el carácter que se ha pulsado en pantalla. Útil para

introducir palabras clave a un programa

mov ah, 01h int 21h

mov ah, 08h int 21h

En el segmento de código

En el segmento de código

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 18 / 24

Trans.:

18 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

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

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

mov ah, 02h mov dl, ‘A’ int 21h

mov ah, 02h mov dl, 41h int 21h

En el segmento de código

Page 10: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

10

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 19 / 24

Trans.:

19 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

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

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 (carácter ENTER) –  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

mov ah, 0Ah lea dx, cadena int 21h

Cadena DB 9,?,?,?,?,?,?,?,?,?,? En el segmento de datos En el segmento de código

Cadena DB 9,?,9 DUP(?) Otra forma de definición:

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 20 / 24

Trans.:

20 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

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

Page 11: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

11

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 21 / 24

Trans.:

21 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

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

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

mov ah, 09h lea dx, cadena int 21h

Cadena DB ’Hola mundo$’

En el segmento de datos En el segmento de código

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 22 / 24

Trans.:

22 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Servicios de interrupción del MS-DOS (y VII)

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

mov ah, 4Ch mov al, 1 ;Valor del ERRORLEVEL int 21h

En el segmento de código

Page 12: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

12

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 23 / 24

Trans.:

23 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

La ROM-BIOS

  Proporciona servicios para trabajar directamente con el hardware del computador y los periféricos

  Se utilizan mediante llamadas a través de interrupciones.

  Los servicios básicos para entrada y salida (E/S) de datos que vamos a utilizar se agrupan en las interrupciones siguientes:

–  INT 10H: Servicios de vídeo (salida por pantalla) –  INT 16H: Servicios de teclado (entrada)

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 24 / 24

Trans.:

24 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Resumen de servicios de salida por pantalla. BIOS

INT 10h AH Función 00h Establece el modo de vídeo.

02h Sitúa el cursor en una posición de la pantalla empleando coordenadas de texto.

06h Desplazar (scroll) hacia arriba una ventana en la pantalla 07h Desplazar (scroll) hacia abajo una ventana en la pantalla. 09h Escribir carácter y atributo en la posición actual del cursor.

0Ah Escribir carácter en la posición actual del cursor con el atributo que tenía el anterior.

0Eh Escribir un carácter en modo teletipo (escribe carácter y avanza cursor a la columna siguiente).

Page 13: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

13

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 25 / 24

Trans.:

25 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (1)

  Función 00h: Establece el modo de vídeo.   El modo de vídeo se pasa en el registro AL.   Algunos modos son:

–  AL = 1 40x25 Texto 16 colores –  AL = 3 80x25 Texto 16 colores

0,0

25 filas

80 columnas

Pantalla en modo texto 80x25

0,79

24,0 24,79

mov ah, 0 mov al, 3 ;80x25 int 10h

En el segmento de código

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 26 / 24

Trans.:

26 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (2)

  Función 02h: Sitúa el cursor en una posición de la pantalla en modo texto.

  Se pasan los parámetros siguientes: –  DH = Fila (0...24) –  DL = Columna (0...39 / 79 según modo vídeo) –  BH = Página (0...3 en modo de vídeo 1, 0...7 en modo

de vídeo 3). Por defecto la página activa es la 0. mov ah, 2 mov dh,12 ;Fila 12 mov dl,20 ;Columna 20 mov bh, 0 ;Página 0 int 10h

En el segmento de código:

Page 14: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

14

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 27 / 24

Trans.:

27 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (3)

  Función 06h / 07h: Desplazar (scroll) hacia arriba (06h) o hacia abajo (07h) una ventana en la pantalla

  Se pasan los parámetros siguientes: –  AL = Número de líneas a desplazar. Si AL = 0 borra el contenido

de la ventana. –  CH = Fila esquina superior izquierda –  CL = Columna esquina superior izquierda –  DH = Fila esquina inferior derecha –  DL = Columna esquina inferior derecha –  BH = Atributo a usar en el área desplazada/borrada con caracteres

“espacio”. ( p.ej.: 07h=blanco sobre negro). Para borrar la pantalla completa se utiliza es función con la opción

AL=0 indicando, para el modo texto 80x25 las esquinas 0,0 y 24,79 Continúa

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 28 / 24

Trans.:

28 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (4)

Atributos para imprimir caracteres con colores, video inverso, etc.: Byte de atributo para los modos 0, 1, 2 y 3 de vídeo

Bit 7 6 5 4 3 2 1 0 P Fondo I Primer plano

P = parpadeo o intensidad de fondo I = Intensidad de primer plano Valores por defecto para programar los colores y controlar los bits P o I

Negro Azul Verde Cian Rojo Magenta Marrón Blanco Gris Azul pálido Verde

pálido Cian pálido Rojo

pálido Magenta pálido Amarillo Blanco

intenso

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

Page 15: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

15

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 29 / 24

Trans.:

29 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (5)

;Desplaza un área de 3 filas por 3 columnas ;hacia arriba y rellena con espacios el área ;liberada mov ah, 6 mov ch, 10 ;Fila 10 superior izq. mov cl, 20 ;Columna 20 superior izq. mov dh,12 ;Fila 12 inferior derecha mov dl,22 ;Columna 22 inferior derecha mov bh, 7 ;Atributo blanco sobre negro mov al, 3 ;Desplaza 3 filas hacia arriba int 10h

En el segmento de código:

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 30 / 24

Trans.:

30 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (6)

  Función 09h: Escribir un carácter y su atributo en la posición actual del cursor una o más veces.

  Se pasan los parámetros siguientes: –  AL = ASCII del carácter a escribir –  BH = Página (0 para la página activa) –  BL = Atributo (p.ej.: 07h=normal, 0Fh=alta intensidad) –  CX = Número de caracteres a escribir (factor de repetición)

mov ah, 9 mov bh, 0 ;Página 0 mov bl, 7 ;Atributo blanco sobre negro mov cx, 4 ;Imprime cuatro veces el mov al,’A’ ;carácter ‘A’ contenido en AL int 10h

En el segmento de código:

Page 16: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

16

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 31 / 24

Trans.:

31 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (7)

  Función 0Ah: Escribir un carácter en la posición actual del cursor con el atributo que tenía el anterior.

  Se pasan los parámetros siguientes: –  AL = ASCII del carácter a escribir –  BH = Página (0 para la página activa) –  CX = Número de caracteres a escribir (factor de repetición)

mov ah, 0Ah mov bh, 0 ;Página 0 mov cx, 1 ;Imprime una vez el mov al,’z’ ;carácter ‘z’ contenido en AL int 10h

En el segmento de código:

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 32 / 24

Trans.:

32 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Salida por pantalla con la BIOS. Int 10H. (y 8)

  Función 0Eh: Escribe un carácter y avanza el cursor a la columna siguiente (modo teletipo).

  Se pasan los parámetros: –  AL = ASCII del carácter a escribir –  BH = Página (0 para la página activa)

mov ah, 0Eh mov al, ’H’ ; Imprime la letra H y avanza el int 10h ; cursor a la columna siguiente

En el segmento de código:

Page 17: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

17

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 33 / 24

Trans.:

33 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Resumen de servicios de teclado. BIOS. (1)

INT 16h AH Función

00h ó 10h(1) Leer un carácter del buffer del teclado. Si el buffer está vacío espera a que se pulse una tecla.

01h ó 11h(1)

Devuelve el estado del buffer del teclado. Si el buffer está vacío pone el flag de cero a uno ZF = 1. Si hay tecla esperando en el buffer pone ZF = 0.

(1) En teclados expandidos (teclas F1 a F12, control de cursor, etc.)

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 34 / 24

Trans.:

34 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Entrada por teclado con la BIOS. Int 16h. (1)

  Función 00h (ó 10h(1)). Lee un carácter del buffer del teclado. Si el buffer está vacío espera a que se pulse una tecla.

  Devuelve en AL el ASCII del carácter leído y en AH el código de identificación de tecla.

(1) En teclados expandidos (teclas F1 a F12, control de cursor, etc.)

mov ah, 0 int 16h mov Caracter_leido, al mov Codigo_ident,ah

En el segmento de código:

Caracter_leido DB ? Codigo_ident DB ?

En el segmento de datos

Page 18: T2presentación de datos por pantallaatc2.aut.uah.es/~avicente/asignaturas/leoc/pdf/t2_presentacion de d… · CX CX -1; Si CX ≠ 0 entonces IP Etiq, si no IP siguiente instrucción

18

Tema 2: Presentación de datos por pantalla. La ROM-BIOS Transparencia: 35 / 24

Trans.:

35 / 35 Laboratorio de Estr. y Org. de Computadores

Grados en I. Informática / I. de Computadores Departamento de Automática Área de Arquitectura y Tecnología de Computadores

Entrada por teclado con la BIOS. Int 16h. (y 2)

  Función 01h (ó 11h(1)). Devuelve el estado del buffer del teclado. El carácter leído no se elimina del buffer del teclado. Para vaciar el buffer se usa la función 00h (ó la 10h).

  Devuelve: –  Si el buffer está vacío pone el flag de cero a uno ZF = 1. –  Si hay tecla esperando en el buffer pone ZF = 0, entonces en AL

devuelve el ASCII del carácter y en AH el código de identificación de tecla. Lazo:

;Código dentro del lazo mov ah, 1 int 16h

jz Lazo ;Itera hasta pulsar tecla mov ah,0 ;Para vaciar el int 16h ;buffer del teclado

En el segmento de código: Este ejemplo muestra el uso de la

función 01h (int 16h) para ejecutar un lazo mientras no se pulse una tecla.