Arquitectura de Computadoras 2

Foro para conocer el avance del curso y compartir comentarios, dudas y aportaciones para todos los participantes del mismo.

Mi foto
Nombre: Dr. Sergio Castillo
Ubicación: Xalapa, Veracruz, Mexico

Profesor universitario en el área de las ciencias de la computación. Doctor en Ciencias de la Computación, Maestro en Ciencias Computacionales e Ingeniero en Electrónica y Comunicaciones.

martes, septiembre 27, 2005

Sesión del Martes 27 de Septiembre

En la sesión de hoy empezamos a estudiar las interrupciones de software, y más específicamente las interrupciones del BIOS. Desde el punto de vista de programación, las interrupciones de software son llamadas a rutinas prefabricadas. Por tanto es necesario contar con la información del fabricante para poder utilizarlas. Les recomiendo la refererencia Help PC para obtener información sobre las interrupciones de software de la PC.

Ejemplo de uso de Interrupciones de BIOS

Para dibujar un punto se puede seguir la siguiente secuencia:
  1. Cambiar a modo gráfico
  2. Dibujar punto
  3. Esperar por cualquier tecla
  4. Regresar a modo texto
  5. Terminar

Expliqué el siguiente programa que dibuja un punto en el centro de la pantalla siguiendo los pasos arriba mencionados a manera de ejemplo para ilustrar el manejo de las interrupciones:
; Archivo: punto.asm
; Dibuja un punto en el centro de la pantalla
; --------------------------------------------
pila segment stack 'stack'
db 512 dup(?)
pila ends

prog segment 'code'
assume ss:pila,cs:prog
inicia:
mov ah,0 ; Prepara Int 10h/0
mov al,13h ; Cambia a Modo 320x200, 256 colores
int 10h

mov ah,0ch ; Prepara Int 10h/0ch
mov dx,100 ; RC(100,160)
mov cx,160
mov al,0fh ; Color = 0fh
int 10h ; Dibuja pixel

mov ah,0 ; Prepara Int 16h/0
int 16h ; Espera por cualquier tecla

mov ah,0 ; Regresa a modo texto 80x25 color
mov al,3
int 10h

mov ax,4c00h ; Regresa a DOS.
int 21h
prog ends
end inicia
A manera de ejercicio les pedí 2 modificaciones al mismo:
  1. Modificar para que espere por la tecla 'q' o 'Q' y entonces continúe su ejecución.
  2. Modificarlo para que despliegue una cruz que cruce en el centro de la pantalla.