PDF de programación - Ensamblador - Interrupciones

Imágen de pdf Ensamblador - Interrupciones

Ensamblador - Interrupcionesgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 5 de Marzo del 2018)
1.967 visualizaciones desde el 5 de Marzo del 2018
152,5 KB
6 paginas
Creado hace 13a (13/01/2011)
Ensamblador

Ensamblador



Interrupciones


Definición: Una interrupción es el rompimiento en la secuencia de un programa para
ejecutar un programa especial
llamando una rutina de servicio cuya
característica principal es que al finalizar regresa al punto donde se interrumpió
el programa.


Dentro de una computadora existen dos clases de interrupciones:


 Interrupciones por software: Son aquellas programadas por el usuario, es decir, el
usuario decide cuando y donde ejecutarlas, generalmente son usadas para realizar
entrada y salida.
















 Interrupciones por hardware: Son aquellas que son provocadas por dispositivos
externos al procesador su característica principal es que no son programadas, esto
es, pueden ocurrir en cualquier momento en el programa. Existen dos clases de
interrupciones de este tipo:

 Interrupciones por hardware enmascarables: Aquellas en las que el usuario

decide si quiere o no ser interrumpido.



 Interrupciones por hardware no enmascarables (NMI): Aquellas que siempre

interrumpen al programa.

INT

SW

HW

SISTEMA

USUARIO

ENMAS
IRQ’S

NMI

SO

BIOS

Las interrupciones por software se ejecutan con ayuda de las instrucciones: INT e

IRET, además se tiene 256 interrupciones: de la 00 a la FF.


Asociado al concepto de interrupción se tiene un área de memoria llamada vector
de interrupciones; la cual contiene las direcciones de las rutinas de servicio de cada
interrrupción. Esta área se encuentra en el segmento 0000:0000.


para el desplazamiento. La instrucción INT tipo, realiza las siguientes tareas:


Para cada una de las direcciones se utilizan 4 bytes, dos bytes para el segmento y 2

1. Salvar el registro de banderas.

MC Beatriz Beltrán Martínez

1

Ensamblador

2. Salvar el IP de la dirección de regreso.
3. Salvar el CS de la dirección de regreso.
4. Salva los registros.
5. Calcula el área donde esta la dirección de la rutina de servicio de la siguiente

manera: tipo*4, en el vector de interrupciones.

6. Ejecuta la rutina de servicio.


A su vez, IRET, que regresa de la interrupción, ejecuta lo siguiente:

0000:0000
:0002
:0004
:0006

1. Desempila los registros.
2. Desempila la dirección de regreso.
3. Desempila el registro de bandera.












IP
CS
IP
CS

INT 0

INT 1

VI



SO







BIOS

TIPO DIRECCIÓN

USO

Tabla de interrupciones del sistema.

0
1
2
3
4
5

6 – 7

8
9

A – D

E
F
10
11
12
13
14
15
16
17
18
19
1A

0000
0004
0008
000C
0010
0014



0020
0024



0038
003C
0040
0044
0048
004C
0050
0054
0058
005C
0060
0064
0068

División por cero

Single Step

NMI

Puntos de ruptura

Overflow

Print Screen
No usadas

Timer
Teclado

No usadas

Disco

Impresora
E/S video

Lista de equipo

Tamaño de memoria

E/S disco
E/S serial

E/S cassette
E/S teclado

Salida impresora

ROM BASIC

Boot strap (reset)

Fecha y hora

Área de
programas
transitorios
(TPA)

SISTEMA

BIOS

DEBUG

BIOS

DEBUG

BIOS
BIOS



BIOS
BIOS



BIOS
BIOS
BIOS
BIOS
BIOS
BIOS
BIOS
BIOS
BIOS
BIOS
BASIC
BIOS
BIOS

MC Beatriz Beltrán Martínez

2

Ensamblador

1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27

006C
0070
0074
0078
007C
0080
0084
0088
008C
0090
0094
0098
009C

Break (teclado)

Int de Timer

Tabla del video
Tabla de disco
Tabla del video

Termina programa

Funciones

Dir de regreso

Control C

Errores críticos

Lectura absoluta de disco
Escritura absoluta de disco
Termina programa y deja

residente

BIOS
BIOS
BIOS
BIOS
BIOS
DOS
DOS
DOS
DOS
DOS
DOS
DOS
DOS





Al encender la computadora se ejecuta un programa; llamada rutina iniciadora; que
inicia todo el sistema dicho programa esta almacenado en la memoria ROM, y forma parte
del BIOS que es un conjunto de rutinas básicas para realizar E/S a dispositivos. Las
funciones son:

1. Realiza una prueba de memoria.
2. Inicia el vector de interrupciones.
3. Inicia circuitos de soporte y dispositivos de E/S.
4. Realiza el proceso conocido como el BOOT STRAP que consiste en leer el sector
del disco en memoria, dicho sector contiene un programa que pasará el sistema
operativo a la memoria y le transfiere el control.



Las interrupciones del BIOS siempre están disponibles al usuario, en cambio las del
sistema operativo, sólo si es sistema se ha cargado en memoria. BIOS permite realizar
entrada y salida a dispositivos, el acceso a éstas rutinas es también por medio de
interrupciones de software y enviando parámetros a través de los registros.


La interrupción 21h permite leer de teclado, escribir en vídeo, escribir en impresora,
leer y escribir de dispositivo auxiliar, además realizar cambios en el vector de
interrupciones, obtener y poner tanto la fecha como la hora.



Manejo de Vídeo



Las computadoras usan los llamados al sistema de vídeo o adaptadores de
display, para desplegar información en la pantalla. La función de tales adaptadores es
conectar la computadora a un monitor. Dichos sistemas están formados por una serie de
circuitos integrados entre los que destacan el controlador de display, puertos de E/S
programables, una ROM generadora de caracteres y una memoria RAM para mantener la
información desplegada. La función del controlador del display es definir el tipo de pantalla
usada, definir y controlar el cursor, asignar color y generar los caracteres.


MC Beatriz Beltrán Martínez

3

Ensamblador

Los sistemas de vídeo pueden trabajar la pantalla en:


 Modo texto: Caracteres alfanuméricos.
 Modo gráfico: Despliega puntos.


El controlador de display controla al cursor, que nos dice donde se va a escribir el
siguiente carácter. Los caracteres pueden verse como la unión de punto dentro de una
matriz para formar el carácter deseado.


En los dos modos de vídeo se tienen dos tipos de resolución: Alta y mediana
resolución, aunque ya no se utiliza la resolución mediana; la resolución, nos brinda mejor
imagen. La pantalla se puede ver como si fuera una matriz de puntos o caracteres.


Cada elemento en la matriz se encuentra almacenado en la memoria RAM del
adaptador de vídeo, de ahí se toma para ser enviado a la pantalla. En modo texto cada
elemento ocupa solo 2 bytes, uno mantiene el código ASCII del carácter y el otro un
atributo con el que se desplegará dicho carácter. El modo gráfico utiliza 4 bytes, 3 bytes
para el color y el cuarto es para el atributo.

Atributos: Background (fondo) y Foreground (frente).


000 Negro
010 Verde
100 Rojo
110 Café
1 Parpadea
0 Normal

001 Azul
011 Violeta
101 Magenta
111 Gris
1 Intensidad alta
0 Intensidad normal



La matriz de vídeo se mapea en memoria por renglones, es decir, primero se
almacena el renglón cero, enseguida el renglón uno y así sucesivamente. Escribir un
carácter en vídeo equivale a escribir en la RAM de vídeo. Todos los sistemas de vídeo
tienen RAM para almacenar más de una pantalla; cada pantalla se distingue por un número
y se le conoce como página. Para escribir un carácter en directo a RAM se necesita:


Dir(i, j) = Dir_incial_de_vídeo + 80*2*i + j*2.

Si se escribe un carácter de esta forma se le conoce como manejo directo de



memoria. Para este tipo de acceso, se puede utilizar las funciones de la interrupción 10h.




Las formas que se tienen para escribir un carácter son:

 En lenguaje de alto nivel por medio de una instrucción.
 En lenguaje de bajo nivel con la INT 21h del sistema operativo DOS.
 Con funciones del BIOS con la INT 10h.
 Con el manejo directo de vídeo metiendo el carácter en memoria.




MC Beatriz Beltrán Martínez

4

Ensamblador

Manejo de Teclado



La interrupción 16h sirve para el manejo de teclado, también se manejan por medio
de funciones. El teclado envía un carácter al CPU y lleva el código de barrido (Scan Code)
que sólo es un número y después lo transforma a ASCII.



Interrupciones por Hardware



En las PC que trabajan con el procesador, se tienen 2 tipos de interrupciones, como
ya se mencionó; las NMI llegan a través de una línea directamente al procesador y cuando
ésta se activa, el CPU provoca una interrupción por software del tipo 2.


Además, se tienen 8 líneas que reciben las interrupciones enmascarables, también
llamadas IRQ (Interrupt ReQuest), asociada a éstas líneas se tiene una bandera IF (Interrupt
Flag) para determinar si se acepta o no las interrupciones.


 Si IF = 1 entonces IRQ’s están habilitadas
 Si IF = 0 entonces IRQ’s deshabilitadas.

Esta bandera se manipula con las instrucciones:


 STI
 CLI




IF = 1
IF = 0

Las 8 líneas de IRQ llegan directamente al CPU, antes son detenidas por un circuito
llamado el control de interrupciones. La función de este circuito es determinar cual de
las 8 líneas puede entrar a interrumpir al CPU en caso de provocarse dos o más
interrupciones a la vez. Esta determinación se lleva a cabo en base en dos cosas:


 Prioridad: Las IRQ están numeradas:

IRQ 0
IRQ 1
...
IRQ7
Las de más alta prioridad es la IRQ 0 y la de más baja prioridad es la
IRQ 7.

 Habilitación en el registro de máscaras: El controlador de interrupciones
contiene un registro de máscaras de 8 bits en el que cada bit
representa una máscara para una línea IRQ.

Reg. Máscaras














7 6 5
  • Links de descarga
http://lwp-l.com/pdf9232

Comentarios de: Ensamblador - Interrupciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad