Story Transcript
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
Í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.
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 2 / 35
1
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 3 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Representación de los flags en el programa Code View
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 3 / 35
Transparencia: 4 / 24
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. Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 4 / 35
2
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 5 / 24
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 Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 5 / 35
Transparencia: 6 / 24
Instrucciones de transferencia de control (II)
Las condiciones más frecuentes admitidas por el 80x86/8088 son:
J [N]
J [N]
Z – Cero G - Mayor que E - Igual J [N] L - Menor que C - Acarreo A - Superior* S - Signo B - Inferior* O - Overflow (Desbordamiento)
[E]
P - Paridad PE - Paridad par PO - Paridad impar CXZ - CX=0
*Se refieren a operandos sin signo Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 6 / 35
3
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 7 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 7 / 35
Transparencia: 8 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 8 / 35
4
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 9 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 9 / 35
Transparencia: 10 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 10 / 35
5
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 11 / 24
Representación de cadenas de caracteres (y III)
48 = 30h 49 = 31h 50 = 32h
57 = 39h
+32 = +20h 0...32 Control Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 11 / 35
Transparencia: 12 / 24
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 Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 12 / 35
6
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 13 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 13 / 35
Transparencia: 14 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 14 / 35
7
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 15 / 24
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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 15 / 35
Transparencia: 16 / 24
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.
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 16 / 35
8
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 17 / 24
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 En el segmento de código mov ah, 01h int 21h 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
En el segmento de código mov ah, 08h int 21h
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 17 / 35
Transparencia: 18 / 24
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
En el segmento de código mov ah, 02h
mov ah, 02h
mov dl, ‘A’ int 21h
mov dl, 41h int 21h
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 18 / 35
9
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 19 / 24
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 En el segmento de código
En el segmento de datos Cadena DB 9,?,?,?,?,?,?,?,?,?,?
mov ah, 0Ah
Otra forma de definición:
lea dx, cadena int 21h
Cadena DB 9,?,9 DUP(?) Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 19 / 35
Transparencia: 20 / 24
Servicios de interrupción del MS-DOS (V)
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 20 / 35
10
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 21 / 24
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 En el segmento de datos Cadena DB ’Hola mundo$’
En el segmento de código mov ah, 09h lea dx, cadena int 21h
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 21 / 35
Transparencia: 22 / 24
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 En el segmento de código mov ah, 4Ch mov al, 1 int 21h
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
;Valor del ERRORLEVEL
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 22 / 35
11
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 23 / 24
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)
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 23 / 35
Transparencia: 24 / 24
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).
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 24 / 35
12
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 25 / 24
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 AL = 3
0,0
40x25 80x25
Texto Texto
80 columnas
16 colores 16 colores
0,79 En el segmento de código
25 filas
Pantalla en modo texto 80x25
mov ah, 0 mov al, 3 int 10h
;80x25
24,79
24,0 Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 25 / 35
Transparencia: 26 / 24
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
En el segmento de código:
mov dh,12 mov dl,20
;Fila 12 ;Columna 20
mov bh, 0 int 10h
;Página 0
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 26 / 35
13
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 27 / 24
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 Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 27 / 35
Transparencia: 28 / 24
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
P
5
4
3
Fondo
2
I
P = parpadeo o intensidad de fondo
1
0
Primer plano 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
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 28 / 35
14
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 29 / 24
Salida por pantalla con la BIOS. Int 10H. (5) En el segmento de código: ;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 mov dl,22
;Fila 12 inferior derecha ;Columna 22 inferior derecha
mov bh, 7 mov al, 3
;Atributo blanco sobre negro ;Desplaza 3 filas hacia arriba
int 10h
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 29 / 35
Transparencia: 30 / 24
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
En el segmento de código:
mov bh, 0 mov bl, 7
;Página 0 ;Atributo blanco sobre negro
mov cx, 4 mov al,’A’
;Imprime cuatro veces el ;carácter ‘A’ contenido en AL
int 10h Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 30 / 35
15
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 31 / 24
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
En el segmento de código:
mov bh, 0 mov cx, 1
;Página 0 ;Imprime una vez el
mov al,’z’ int 10h
;carácter ‘z’ contenido en AL
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 31 / 35
Transparencia: 32 / 24
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
En el segmento de código:
mov al, ’H’ int 10h
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
; Imprime la letra H y avanza el ; cursor a la columna siguiente
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 32 / 35
16
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 33 / 24
Resumen de servicios de teclado. BIOS. (1) INT 16h AH
Función
Leer un carácter del buffer del teclado. Si el buffer está vacío 00h ó 10h(1) espera a que se pulse una tecla. 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. 01h ó 11h(1) (1) En teclados expandidos (teclas F1 a F12, control de cursor, etc.)
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Trans.: 33 / 35
Transparencia: 34 / 24
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.)
En el segmento de datos
En el segmento de código:
Caracter_leido DB ?
mov ah, 0
Codigo_ident DB ?
int 16h mov Caracter_leido, al mov Codigo_ident,ah
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 34 / 35
17
Tema 2: Presentación de datos por pantalla. La ROM-BIOS
Transparencia: 35 / 24
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:
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.
Departamento de Automática Área de Arquitectura y Tecnología de Computadores
;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
Laboratorio de Estr. y Org. de Computadores Grados en I. Informática / I. de Computadores
Trans.: 35 / 35
18