SlideShare una empresa de Scribd logo
1 de 10
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Instituto Tecnológico Superior de Zapopan
Ingeniería Sistemas Computacionales
Reporte de la práctica No. “Final”
Tema Final
“BÚFFER DE VIDEO EN MODO DE TEXTO (ASM) ENSAMBLADOR”
Investigación + 5 Referencias
Nombre del alumno: Jorge Aníbal Quezada Ulibarri
Nombre del profesor: “Mtro. Adalberto Chávez Velázquez
Fecha de realización: 29 Noviembre del 2015
Calificación: _________________
1
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
CARRERA
PLAN DE
ESTUDIO
CLAVE DE LA
ASIGNATURA
NOMBRE DE LA ASIGNATURA
Ingeniería
en
Sistemas
2010 6P6
Lenguajes de interfaz
PRACTICA
No.
LABORATORIO
DE:
S-LIA DURACION
EN HORAS:
NOMBRE DE LA
PRACTICA:
Búffer de video en modo de texto (ASM)
Ensamblador
1.- OBJETIVO O COMPETENCIA
Por motivos de cierre de laboratorios nuestro docente Adalberto Chávez optó por
repartir los últimos temas a los alumnos para no perder el tiempo y poder acatar todo el
plan de estudios de la materia “Lenguajes de interfaz”.
El tema a investigar es: Búffer de video en modo de texto (ASM) Ensamblador.
2.- FUNDAMENTOS
El buffer de video en modo texto
Se llama modo texto a cualquier modo de vídeo de un ordenador en el que el contenido
de la pantalla se representa internamente en términos de caracteres textuales en lugar
de píxeles individuales. Típicamente, la pantalla consistirá en una rejilla uniforme de
«celdas de caracteres», cada una de las cuales contendrá un carácter del juego de
caracteres.
El uso del modo texto se hizo popular a principios de los años 1970, cuando los
terminales de texto orientados a vídeo empezaron a reemplazar a los teletipos en el uso
interactivo de las computadoras.
1) Acceso a discos en lenguaje ensamblador:
Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de
entrada/salida:
Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
Sincronización y coordinación de las operaciones.
Esta última función es necesaria debido a la deferencia de velocidades entre los
dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU
(por ejemplo, suelen tener relojes diferentes).
Se define una transferencia elemental de información como la transmisión de una sola
2
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
unidad de información (normalmente un byte) entre el procesador y el periférico o
viceversa. Para efectuar una transferencia elemental de información son precisas las
siguientes funciones:
Establecimiento de una comunicación física entre el procesador y el periférico para la
transmisión de la unidad de información.
Control de los periféricos, en que se incluyen operaciones como prueba y modificación
del estado del periférico. Para realizar estas funciones la CPU gestionará las líneas de
control necesarias.
Definiremos una operación de E/S como el conjunto de acciones necesarias para la
transferencia de un conjunto de datos (es decir, una transferencia completa de datos).
Para la realización de una operación de E/S se deben efectuar las siguientes funciones:
Recuento de las unidades de información transferidas (normalmente bytes) para
reconocer el fin de operación.
Sincronización de velocidad entre la CPU y el periférico.
Detección de errores: (e incluso corrección) mediante la utilización de los códigos
necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal
específico para las operaciones de E/S que utilizan el área de datos del programa.
Conversión de códigos, conversión serie/paralelo, etc.
Programación del puerto serial:
Comunicación serial en lenguaje ensamblador.
En lenguaje ensamblador, se puede acudir a la interrupción 14H de la ROM BIOS para
configurar, leer, escribir o simplemente para conocer el estado del puerto; cada una de
estas cuatro opciones es un servicio de la interrupción, y se seleccionan a través del
registro AH. La figura 1 muestra los valores que debe contener el registro AH para invocar
cada uno de los servicios. En todos los casos, el registro DX debe contener el número del
puerto serie; el primero de ellos, COM1 se especifica como 00h.
Servicio Descripción:
00
Inicializar puerto serie
01
Enviar un dato
02
Recibir un dato
03
Obtener el estado del puerto
Servicios para el puerto serial disponibles a través de la interrupción 14H
Para configurar o inicializar el puerto serie, bastará con utilizar el servicio 00 de la
interrupción, colocando en el registro AL los valores equivalentes a los parámetros.
Con éste método es posible obtener frecuencias de transmisión que van desde los 110
hasta los 9600 baudios.
3
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Programación del puerto paralelo:
En lenguaje ensamblador, se puede leer un dato del puerto mediante la instrucción
IN ó escribir un dato en el puerto con la instrucción OUT ,en ambos casos el registro AL
debe participar activamente en la instrucción, bien sea como fuente (en operaciones de
escritura) o destino (en operaciones de lectura) del dato, como en los siguientes casos:
Out DX, AL; lleva al puerto DX el contenido del registro AL
In AL,DX ; lleva al registro AL, el contenido del puerto DX
Otra, exigencia, es que el número del puerto sobre el que se va a realizar la transferencia
de datos debe estar señalado por el registro DX, a excepción de los casos en los cuales el
número del puerto es inferior a 255 (FFh), en cuyo caso la instrucción que lee o escribe
puede señalar directamente el puerto. La utilización del puerto paralelo en lenguaje
ensamblador es muy sencilla.
Programación híbrida:
La compilación hibrida es utilizada en lo que es conocida como programación hibrida
(válgase la redundancia).
La programación hibrida es utilizada en los casos en donde el código en ensamblador
dificulta la estructuración del programa. La programación híbrida proporciona un
mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje
ensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas más
rápidos y eficientes.
Las aplicaciones en modo texto se comunican con el usuario mediante líneas de
comandos e interfaces textuales de usuario, muchos juegos de caracteres usados en
aplicaciones en modo texto también incluyen un conjunto limitado de caracteres
semigráficos predefinidos que pueden usarse para dibujar cajas u otros gráficos usados
para destacar el contenido o simular widgets y controles como los presentes en las
aplicaciones escritas para interfaces gráficas.
Es la ubicación de la memoria de un dispositivo digital o una computadora que está
reservada para el almacenamiento temporal de información. Mientras los datos están en
el buffer, aguardan para ser procesados. Un ejemplo de buffer tiene lugar cuando se
intenta ejecutar aplicaciones de audio o video directamente desde Internet, sin
descargarlas a la computadora. Esta práctica, conocida como streaming, requiere de la
utilización de un buffer para reducir el riesgo de que se corte la reproducción ante
problemas en el ancho de banda.
Según el entorno, el buffer de pantalla puede ser directamente accesible,
como memoria convencional, para los programas locales. Los programas que muestran salidas
en una terminal remota deben enviar secuencias de control especiales para manipular el buffer
de pantalla. Los estándares más populares de dichas secuencias de control son ANSI y VT100. Los
programas que acceder al buffer de pantalla mediante secuencias de control pueden perder la
4
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
sincronización con la pantalla real, por lo que muchos programas en modo texto tienen un
comando para «refrescar» toda la pantalla, a menudo asociado con la combinación de
teclas Ctrl+L.
En lenguaje ensamblador este proceso se lleva a cabo con la creación de rutinas o
funciones destinadas, las rutinas llegan a ser excesivamente largas, resultando
conveniente asignarlas como ficheros independientes y llevar el proceso de ensamblado
por separado, incluyéndolas en un fichero de proyecto (*.prj) seleccionable en los menú
del compilador.
Es importante respetar las definiciones de segmentos que realiza el compilador; sin
embargo se puede mezclar código de ensamblador con C.
Ejemplo:
Ensamblador 8086 Modo 13h Memoria para Gráficos:
El programa del post anterior pinta pixeles usando la interrupción 10h servicio 0Ch;
podríamos pensar que estamos mandando la instrucción de pintar un pixel
directamente a la tarjeta de video. Sin embargo, lo que realmente estamos
haciendo es escribir al área de memoria de gráficos que inicia en A000:0000.
5
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Esta área consta de 320x200 bytes (64,000 bytes) y cada byte corresponde a un pixel.
Para cada byte del área de memoria de gráficos, la tarjeta de video lee el byte y usa ese
byte como índice en la paleta de colores para obtener el color del pixel.
En la pantalla, el pixel superior-izquierdo (fila 0, columna 0) corresponde al byte en la
dirección A000:0000, el pixel superior-derecho (fila 0, columna 319) corresponde a
A000:013F, el primer pixel de la segunda fila (fila 1, columna 0) está mapeado a la
dirección A000:0140. En general, el pixel en la fila i, columna j corresponde a A000:
(140h*i+j).
La siguiente imagen muestra cómo interactuamos con el área de memoria y la paleta de
colores; la tarjeta de video usa esta información para desplegar el contenido de la
pantalla.
6
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
El siguiente programa muestra la misma funcionalidad del programa del post anterior,
pero esta vez escribiendo directamente al área de memoria de gráficos.
.model small
.stack 128
.data
.code
.startup
main proc
; INT 10h / AH = 0 - configurar modo de video.
; AL = modo de video deseado.
; 00h - modo texto. 40x25. 16 colores. 8 paginas.
; 03h - modo texto. 80x25. 16 colores. 8 paginas.
; 13h - modo grafico. 40x25. 256 colores.
; 320x200 pixeles. 1 pagina.
mov ax,0013h
int 10h
mov ax, 0A000h
mov ds, ax ; DS = A000h (memoria de graficos).
; ============== Lineas verticales ======================
; Queremos pintar 256 colummas, cada una con un alto de
; 200 pixeles. Podemos ejecutar 51,200 ciclos.
; Como la memoria de graficos es lineal, es mejor pintar
; una fila a la vez, cada fila tiene 320 columnas, pero
; solo pintamos 256. Al llegar a la columna 256 saltamos
; a la siguiente fila sumando 320-256 = 64
; Cada pixel cambia de color para dar el efecto de lineas
; verticales
mov cx,0C800h ; # de pixeles
xor dx,dx ; contador de columnas y color
xor di,di
ciclo_1:
mov [di], dx ; poner color en A000:DI
inc di
inc dx
cmp dx,256
jne sig_pix1
7
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
add di,0040h ; saltar al inicio de siguiente fila
xor dx,dx ; reiniciar columnas y color
sig_pix1:
loop ciclo_1
; esperar por tecla
mov ah,10h
int 16h
; ============== Lineas horizontales ======================
; Queremos pintar 200 filas, cada una con un largo de
; 320 pixeles. Podemos ejecutar 64,000 ciclos.
; Despues de pintar los 320 pixeles correspondientes a
; una fila, cambiamos el color para pintar la siguiente
; fila y dar el efecto de lineas horizontales.
mov cx,0FA00h ; todos los pixeles de la pantalla
xor dx,dx ; color para cada fila
xor bx,bx ; contador de columnas
xor di,di
ciclo_2:
mov [di], dx ; poner color en A000:DI
inc di
inc bx
cmp bx,320
jne sig_pix2
; nueva fila
xor bx,bx ; resetear contador de columnas
inc dx ; cambiar color
sig_pix2:
loop ciclo_2
; esperar por tecla
mov ah,10h
int 16h
; regresar a modo texto
mov ax,0003h
int 10h
; finalizar el programa
mov ax,4c00h
int 21h
ret
main endp
end
8
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
4.- RESULTADOS Y CONCLUSIONES
CONCLUSIÓN:
La utilización de un búfer de video en modo de texto, nos permite visualizar caracteres, figuras,
colores, en pocas palabras fue el impulso para desarrollar lo que hoy conocemos como animación,
gráficos, y el preciado 3-D el lenguaje ensamblador fue las estructura y el tronco inicial de los
avances en la computación y graficación.
Las prácticas llevaron al óptimo desarrollo para que las tecnologías de hoy en día nos permitieran
ver el mundo de una forma distinta, trazar algo abstracto para que el ojo humano pudiera ver en
realidad como es.
Sin duda alguna ensamblador es y será siempre el lenguaje máquina que permitirá grandes avances
desde 0 para hacer proyectos así como desarrollar las nuevas tendencias que nos esperan en un
futuro.
5.-BIBLIOGRAFIA, ANEXOS Y REFERRENCIAS
1) http://leo-yac.wix.com/biffer-de-video#!caracteristicas/c1yp
2) http://www.itpn.mx/recursosisc/6semestre/lenguajesdeinter
faz/Unidad%20IV.pdf
3) http://lenguajesdeinterfazitsncg.blogspot.mx/2015/05/buffer
-de-video-en-modo-texto.html
4) http://mitecnologico.com/sistemas/Main/LenguajesDeInterf
az
5) http://www.abreojosensamblador.net/Productos/AOE/html/
Pags/Cap08.html
6) http://tipsparaisc.blogspot.mx/2012/04/ensamblador-8086-
modo-13h-memoria-para.html
9
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
10

Más contenido relacionado

Similar a Práctica final tercer parcial

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjuan1993are
 
Práctica #3 estructura if (traducción c to asm)
Práctica #3  estructura if (traducción c to asm)Práctica #3  estructura if (traducción c to asm)
Práctica #3 estructura if (traducción c to asm)Anibal Ulibarri
 
Gestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salidaGestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salidaVictorVillalobos
 
Gestion de dispositivos es
Gestion de dispositivos esGestion de dispositivos es
Gestion de dispositivos esVictorVillalobos
 
Memoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggMemoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggredondoredondoenriqu
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic oskarjgf
 
Lenguaje Ensamblador
Lenguaje Ensamblador Lenguaje Ensamblador
Lenguaje Ensamblador irana piñero
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del bancoAnibal Ulibarri
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraLenin Jiménez
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose RojasJose Rojas
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 

Similar a Práctica final tercer parcial (20)

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Práctica #3 estructura if (traducción c to asm)
Práctica #3  estructura if (traducción c to asm)Práctica #3  estructura if (traducción c to asm)
Práctica #3 estructura if (traducción c to asm)
 
Ec2
Ec2Ec2
Ec2
 
Gestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salidaGestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salida
 
Gestion de dispositivos es
Gestion de dispositivos esGestion de dispositivos es
Gestion de dispositivos es
 
Memoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggMemoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCggggggggggg
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Tutorial ensamblador
Tutorial ensambladorTutorial ensamblador
Tutorial ensamblador
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Lenguaje Ensamblador
Lenguaje Ensamblador Lenguaje Ensamblador
Lenguaje Ensamblador
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del banco
 
Sistema de entrada/salida
Sistema de entrada/salidaSistema de entrada/salida
Sistema de entrada/salida
 
Assambler
AssamblerAssambler
Assambler
 
Modos de direccionamiento.pdf
Modos de direccionamiento.pdfModos de direccionamiento.pdf
Modos de direccionamiento.pdf
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadora
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 

Más de Anibal Ulibarri

Requerimientos de-cliente-y-desarrollador
Requerimientos de-cliente-y-desarrolladorRequerimientos de-cliente-y-desarrollador
Requerimientos de-cliente-y-desarrolladorAnibal Ulibarri
 
Gestion de calidad (gps)
Gestion de calidad (gps)Gestion de calidad (gps)
Gestion de calidad (gps)Anibal Ulibarri
 
Práctica #2 puertos in out (nombre)
Práctica #2  puertos in  out (nombre)Práctica #2  puertos in  out (nombre)
Práctica #2 puertos in out (nombre)Anibal Ulibarri
 
Práctica #1 reconocimiento del sistema
Práctica #1 reconocimiento del sistemaPráctica #1 reconocimiento del sistema
Práctica #1 reconocimiento del sistemaAnibal Ulibarri
 
Sistemas operativos multiprocesadores2
Sistemas operativos multiprocesadores2Sistemas operativos multiprocesadores2
Sistemas operativos multiprocesadores2Anibal Ulibarri
 
Desarrollo de una propuesta ganadora
Desarrollo de una propuesta ganadoraDesarrollo de una propuesta ganadora
Desarrollo de una propuesta ganadoraAnibal Ulibarri
 
Informix exposicion-2016
Informix exposicion-2016Informix exposicion-2016
Informix exposicion-2016Anibal Ulibarri
 
Identificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidadesIdentificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidadesAnibal Ulibarri
 
Identificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidadesIdentificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidadesAnibal Ulibarri
 
Metodologías emergentes
Metodologías emergentesMetodologías emergentes
Metodologías emergentesAnibal Ulibarri
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes Anibal Ulibarri
 

Más de Anibal Ulibarri (15)

Requerimientos de-cliente-y-desarrollador
Requerimientos de-cliente-y-desarrolladorRequerimientos de-cliente-y-desarrollador
Requerimientos de-cliente-y-desarrollador
 
Gestion de calidad (gps)
Gestion de calidad (gps)Gestion de calidad (gps)
Gestion de calidad (gps)
 
Cisco ccna4 v5 cap 6
Cisco  ccna4 v5 cap 6Cisco  ccna4 v5 cap 6
Cisco ccna4 v5 cap 6
 
Práctica #2 puertos in out (nombre)
Práctica #2  puertos in  out (nombre)Práctica #2  puertos in  out (nombre)
Práctica #2 puertos in out (nombre)
 
Práctica #1 reconocimiento del sistema
Práctica #1 reconocimiento del sistemaPráctica #1 reconocimiento del sistema
Práctica #1 reconocimiento del sistema
 
Sistemas operativos multiprocesadores2
Sistemas operativos multiprocesadores2Sistemas operativos multiprocesadores2
Sistemas operativos multiprocesadores2
 
Desarrollo de una propuesta ganadora
Desarrollo de una propuesta ganadoraDesarrollo de una propuesta ganadora
Desarrollo de una propuesta ganadora
 
Ciencia e ingeniería
Ciencia e ingenieríaCiencia e ingeniería
Ciencia e ingeniería
 
Informix exposicion-2016
Informix exposicion-2016Informix exposicion-2016
Informix exposicion-2016
 
Identificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidadesIdentificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidades
 
Identificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidadesIdentificación de necesidades problemas y oportunidades
Identificación de necesidades problemas y oportunidades
 
Ccna 3 v.50 capitulo 5
Ccna 3 v.50   capitulo 5 Ccna 3 v.50   capitulo 5
Ccna 3 v.50 capitulo 5
 
Metodologías emergentes
Metodologías emergentesMetodologías emergentes
Metodologías emergentes
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 

Último

Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 

Último (20)

Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 

Práctica final tercer parcial

  • 1. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. Instituto Tecnológico Superior de Zapopan Ingeniería Sistemas Computacionales Reporte de la práctica No. “Final” Tema Final “BÚFFER DE VIDEO EN MODO DE TEXTO (ASM) ENSAMBLADOR” Investigación + 5 Referencias Nombre del alumno: Jorge Aníbal Quezada Ulibarri Nombre del profesor: “Mtro. Adalberto Chávez Velázquez Fecha de realización: 29 Noviembre del 2015 Calificación: _________________ 1
  • 2. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. CARRERA PLAN DE ESTUDIO CLAVE DE LA ASIGNATURA NOMBRE DE LA ASIGNATURA Ingeniería en Sistemas 2010 6P6 Lenguajes de interfaz PRACTICA No. LABORATORIO DE: S-LIA DURACION EN HORAS: NOMBRE DE LA PRACTICA: Búffer de video en modo de texto (ASM) Ensamblador 1.- OBJETIVO O COMPETENCIA Por motivos de cierre de laboratorios nuestro docente Adalberto Chávez optó por repartir los últimos temas a los alumnos para no perder el tiempo y poder acatar todo el plan de estudios de la materia “Lenguajes de interfaz”. El tema a investigar es: Búffer de video en modo de texto (ASM) Ensamblador. 2.- FUNDAMENTOS El buffer de video en modo texto Se llama modo texto a cualquier modo de vídeo de un ordenador en el que el contenido de la pantalla se representa internamente en términos de caracteres textuales en lugar de píxeles individuales. Típicamente, la pantalla consistirá en una rejilla uniforme de «celdas de caracteres», cada una de las cuales contendrá un carácter del juego de caracteres. El uso del modo texto se hizo popular a principios de los años 1970, cuando los terminales de texto orientados a vídeo empezaron a reemplazar a los teletipos en el uso interactivo de las computadoras. 1) Acceso a discos en lenguaje ensamblador: Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida: Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S. Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido). Sincronización y coordinación de las operaciones. Esta última función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes). Se define una transferencia elemental de información como la transmisión de una sola 2
  • 3. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones: Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información. Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionará las líneas de control necesarias. Definiremos una operación de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos). Para la realización de una operación de E/S se deben efectuar las siguientes funciones: Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación. Sincronización de velocidad entre la CPU y el periférico. Detección de errores: (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.) Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa. Conversión de códigos, conversión serie/paralelo, etc. Programación del puerto serial: Comunicación serial en lenguaje ensamblador. En lenguaje ensamblador, se puede acudir a la interrupción 14H de la ROM BIOS para configurar, leer, escribir o simplemente para conocer el estado del puerto; cada una de estas cuatro opciones es un servicio de la interrupción, y se seleccionan a través del registro AH. La figura 1 muestra los valores que debe contener el registro AH para invocar cada uno de los servicios. En todos los casos, el registro DX debe contener el número del puerto serie; el primero de ellos, COM1 se especifica como 00h. Servicio Descripción: 00 Inicializar puerto serie 01 Enviar un dato 02 Recibir un dato 03 Obtener el estado del puerto Servicios para el puerto serial disponibles a través de la interrupción 14H Para configurar o inicializar el puerto serie, bastará con utilizar el servicio 00 de la interrupción, colocando en el registro AL los valores equivalentes a los parámetros. Con éste método es posible obtener frecuencias de transmisión que van desde los 110 hasta los 9600 baudios. 3
  • 4. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. Programación del puerto paralelo: En lenguaje ensamblador, se puede leer un dato del puerto mediante la instrucción IN ó escribir un dato en el puerto con la instrucción OUT ,en ambos casos el registro AL debe participar activamente en la instrucción, bien sea como fuente (en operaciones de escritura) o destino (en operaciones de lectura) del dato, como en los siguientes casos: Out DX, AL; lleva al puerto DX el contenido del registro AL In AL,DX ; lleva al registro AL, el contenido del puerto DX Otra, exigencia, es que el número del puerto sobre el que se va a realizar la transferencia de datos debe estar señalado por el registro DX, a excepción de los casos en los cuales el número del puerto es inferior a 255 (FFh), en cuyo caso la instrucción que lee o escribe puede señalar directamente el puerto. La utilización del puerto paralelo en lenguaje ensamblador es muy sencilla. Programación híbrida: La compilación hibrida es utilizada en lo que es conocida como programación hibrida (válgase la redundancia). La programación hibrida es utilizada en los casos en donde el código en ensamblador dificulta la estructuración del programa. La programación híbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas más rápidos y eficientes. Las aplicaciones en modo texto se comunican con el usuario mediante líneas de comandos e interfaces textuales de usuario, muchos juegos de caracteres usados en aplicaciones en modo texto también incluyen un conjunto limitado de caracteres semigráficos predefinidos que pueden usarse para dibujar cajas u otros gráficos usados para destacar el contenido o simular widgets y controles como los presentes en las aplicaciones escritas para interfaces gráficas. Es la ubicación de la memoria de un dispositivo digital o una computadora que está reservada para el almacenamiento temporal de información. Mientras los datos están en el buffer, aguardan para ser procesados. Un ejemplo de buffer tiene lugar cuando se intenta ejecutar aplicaciones de audio o video directamente desde Internet, sin descargarlas a la computadora. Esta práctica, conocida como streaming, requiere de la utilización de un buffer para reducir el riesgo de que se corte la reproducción ante problemas en el ancho de banda. Según el entorno, el buffer de pantalla puede ser directamente accesible, como memoria convencional, para los programas locales. Los programas que muestran salidas en una terminal remota deben enviar secuencias de control especiales para manipular el buffer de pantalla. Los estándares más populares de dichas secuencias de control son ANSI y VT100. Los programas que acceder al buffer de pantalla mediante secuencias de control pueden perder la 4
  • 5. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. sincronización con la pantalla real, por lo que muchos programas en modo texto tienen un comando para «refrescar» toda la pantalla, a menudo asociado con la combinación de teclas Ctrl+L. En lenguaje ensamblador este proceso se lleva a cabo con la creación de rutinas o funciones destinadas, las rutinas llegan a ser excesivamente largas, resultando conveniente asignarlas como ficheros independientes y llevar el proceso de ensamblado por separado, incluyéndolas en un fichero de proyecto (*.prj) seleccionable en los menú del compilador. Es importante respetar las definiciones de segmentos que realiza el compilador; sin embargo se puede mezclar código de ensamblador con C. Ejemplo: Ensamblador 8086 Modo 13h Memoria para Gráficos: El programa del post anterior pinta pixeles usando la interrupción 10h servicio 0Ch; podríamos pensar que estamos mandando la instrucción de pintar un pixel directamente a la tarjeta de video. Sin embargo, lo que realmente estamos haciendo es escribir al área de memoria de gráficos que inicia en A000:0000. 5
  • 6. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. Esta área consta de 320x200 bytes (64,000 bytes) y cada byte corresponde a un pixel. Para cada byte del área de memoria de gráficos, la tarjeta de video lee el byte y usa ese byte como índice en la paleta de colores para obtener el color del pixel. En la pantalla, el pixel superior-izquierdo (fila 0, columna 0) corresponde al byte en la dirección A000:0000, el pixel superior-derecho (fila 0, columna 319) corresponde a A000:013F, el primer pixel de la segunda fila (fila 1, columna 0) está mapeado a la dirección A000:0140. En general, el pixel en la fila i, columna j corresponde a A000: (140h*i+j). La siguiente imagen muestra cómo interactuamos con el área de memoria y la paleta de colores; la tarjeta de video usa esta información para desplegar el contenido de la pantalla. 6
  • 7. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. El siguiente programa muestra la misma funcionalidad del programa del post anterior, pero esta vez escribiendo directamente al área de memoria de gráficos. .model small .stack 128 .data .code .startup main proc ; INT 10h / AH = 0 - configurar modo de video. ; AL = modo de video deseado. ; 00h - modo texto. 40x25. 16 colores. 8 paginas. ; 03h - modo texto. 80x25. 16 colores. 8 paginas. ; 13h - modo grafico. 40x25. 256 colores. ; 320x200 pixeles. 1 pagina. mov ax,0013h int 10h mov ax, 0A000h mov ds, ax ; DS = A000h (memoria de graficos). ; ============== Lineas verticales ====================== ; Queremos pintar 256 colummas, cada una con un alto de ; 200 pixeles. Podemos ejecutar 51,200 ciclos. ; Como la memoria de graficos es lineal, es mejor pintar ; una fila a la vez, cada fila tiene 320 columnas, pero ; solo pintamos 256. Al llegar a la columna 256 saltamos ; a la siguiente fila sumando 320-256 = 64 ; Cada pixel cambia de color para dar el efecto de lineas ; verticales mov cx,0C800h ; # de pixeles xor dx,dx ; contador de columnas y color xor di,di ciclo_1: mov [di], dx ; poner color en A000:DI inc di inc dx cmp dx,256 jne sig_pix1 7
  • 8. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. add di,0040h ; saltar al inicio de siguiente fila xor dx,dx ; reiniciar columnas y color sig_pix1: loop ciclo_1 ; esperar por tecla mov ah,10h int 16h ; ============== Lineas horizontales ====================== ; Queremos pintar 200 filas, cada una con un largo de ; 320 pixeles. Podemos ejecutar 64,000 ciclos. ; Despues de pintar los 320 pixeles correspondientes a ; una fila, cambiamos el color para pintar la siguiente ; fila y dar el efecto de lineas horizontales. mov cx,0FA00h ; todos los pixeles de la pantalla xor dx,dx ; color para cada fila xor bx,bx ; contador de columnas xor di,di ciclo_2: mov [di], dx ; poner color en A000:DI inc di inc bx cmp bx,320 jne sig_pix2 ; nueva fila xor bx,bx ; resetear contador de columnas inc dx ; cambiar color sig_pix2: loop ciclo_2 ; esperar por tecla mov ah,10h int 16h ; regresar a modo texto mov ax,0003h int 10h ; finalizar el programa mov ax,4c00h int 21h ret main endp end 8
  • 9. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. 4.- RESULTADOS Y CONCLUSIONES CONCLUSIÓN: La utilización de un búfer de video en modo de texto, nos permite visualizar caracteres, figuras, colores, en pocas palabras fue el impulso para desarrollar lo que hoy conocemos como animación, gráficos, y el preciado 3-D el lenguaje ensamblador fue las estructura y el tronco inicial de los avances en la computación y graficación. Las prácticas llevaron al óptimo desarrollo para que las tecnologías de hoy en día nos permitieran ver el mundo de una forma distinta, trazar algo abstracto para que el ojo humano pudiera ver en realidad como es. Sin duda alguna ensamblador es y será siempre el lenguaje máquina que permitirá grandes avances desde 0 para hacer proyectos así como desarrollar las nuevas tendencias que nos esperan en un futuro. 5.-BIBLIOGRAFIA, ANEXOS Y REFERRENCIAS 1) http://leo-yac.wix.com/biffer-de-video#!caracteristicas/c1yp 2) http://www.itpn.mx/recursosisc/6semestre/lenguajesdeinter faz/Unidad%20IV.pdf 3) http://lenguajesdeinterfazitsncg.blogspot.mx/2015/05/buffer -de-video-en-modo-texto.html 4) http://mitecnologico.com/sistemas/Main/LenguajesDeInterf az 5) http://www.abreojosensamblador.net/Productos/AOE/html/ Pags/Cap08.html 6) http://tipsparaisc.blogspot.mx/2012/04/ensamblador-8086- modo-13h-memoria-para.html 9
  • 10. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. 10