jueves, 28 de noviembre de 2013

Modificación de código

Modificar el siguiente código para que imprima en patalla los caracteres correspondientes a los valores 0-255
 
 
 
Los cambios que hay que hacerse son mínimos, solo hay que modificarlo para que corra como .exe y no como .com, agregandole el comando .DATA y moviendo la variable "CHAR" debajo de éste, agregarle el comando .STACK para la pila, con un tamaño de 256, es decir el número de caracteres que se imprimiran, y agregar las instrucciones para mover los registros de segmento y que puedan mostrarse en pantalla, es decir el MOV AX, @data y el MOV DS,AX , dentro de la etiqueta BEGIN pero antes de la instrucción JMP SHORT MAIN, lo que resta del código no necesita ser modificado.
 
 
Se ensambla y enlaza el programa para poder correrlo luego como .exe
 
 
Y el resultado es el siguiente
 
 
Y para comprobar aqui esta la tabla ASCII con los valores de los caracteres, aunque los primeros no se muestran por no ser caracteres si no "instrucciones" por asi llamarlo.
 
 
 
 

lunes, 25 de noviembre de 2013

Cuestionario

1. ¿Qué es el acceso a dispositivos de almacenamiento?
 
Forma en que se puede leer y escribir datos en un dispositivo auxiliar a la memoria principal.
 

Dispositivo de almacenamiento de acceso directo: Es cualquier tipo de dispositivo de almacenamiento secundario que tiene un tiempo de acceso bajo en proporción a su capacidad.

 
2. ¿Cómo se hace el acceso a disco usando lenguaje ensamblador?
 
Los datos se registran sobre la superficie del disco en una serie de circunferencias concentricas llamadas pistas (track).
 
Varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. Cada pista esta divida en porciones iguales llamadas sectores. Un sector es la unidad basica del almacenamiento en un disco, el tamaño de un sector se mide en bytes y depende de las caracteristicas del disco.

Un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre disponible en un disco.
 

 
3. Mencione y describa las unidades básicas del adaptador de video

El adaptador de video consta de tres unidades básicas:

1) El controlador de video: Esta unidad es el "caballo de batalla", genera las señales de rastreo del monitor para el modo seleccionado, texto o gráfico. El procesador de la computadora envía instrucciones a los registros del controlador y lee ahí la información de estado.

2) El video de BIOS: Actúa como una interfaz con el adaptador de video , contiene rutinas, como para establecer el cursor y desplegar caracteres.

3) El área de despliegue de video: En memoria contiene la información que el monitor va a mostrar. Las interrupciones que manejan el despliegue en pantalla de forma directa transfieren a esta área sus datos. Las localidades del adaptador de video dependen de los modos de video que esten usando . Para los adaptadores principales, a continuación están las direcciones del inicio de los segmentos de despliegue de video:

- A000:[0] Utilizada para descripción de fuentes cuando está en modo texto y para gráficos de alta resolución para EGA, MCGA y VGA.

- B000:[0] Modo de texto monocromático para MDA, EGA y VGA.

- B100:[0] Para HCG

-B800:[0] Modos de texto para CGA, MCGA, EGA y VGA y modos gráficos para CGA, EGA, MCGA y VGA.



Fuentes

http://www.sisman.utm.edu.ec/libros/FACULTAD%20DE%20CIENCIAS%20ZOOT%C3%89CNICAS/CARRERA%20DE%20INGENIER%C3%8DA%20EN%20INFORMATICA%20AGROPECUARIA/05/PROGRAMACION%20IV/P.%20Avanzada%20lenguaje%20ensamblador.PDF

http://books.google.com.mx/books?id=syAOv7jF3W4C&pg=PA154&lpg=PA154&dq=unidades+b%C3%A1sicas+de+adaptador+de+video&source=bl&ots=rIb-0kqkY_&sig=f7gG7JGiQ3fxQ5IV_5zdsE3NNJQ&hl=en&sa=X&ei=TvmTUoiyI-OL2wWvkoGwAg&ved=0CCgQ6AEwAA#v=onepage&q=unidades%20b%C3%A1sicas%20de%20adaptador%20de%20video&f=false

jueves, 21 de noviembre de 2013

Acceso a discos en lenguaje ensamblador

¿Que es el acceso a dispositivos de almacenamiento?
 
Forma en que se puede leer y escribir datos en un dispositivo auxiliar a la memoria principal.
 
Dispositivo de almacenamiento de acceso directo: Es cualquier tipo de dispositivo de almacenamiento secundario que tiene un tiempo de acceso bajo en proporción a su capacidad.



¿Como se hace el acceso a disco usando lenguaje ensamblador?
 
Los datos se registran sobre la superficie del disco en una serie de circunferencias concentricas llamadas pistas (track).
 
Varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. Cada pista esta divida en porciones iguales llamadas sectores. Un sector es la unidad basica del almacenamiento en un disco, el tamaño de un sector se mide en bytes y depende de las características del disco.

Un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre disponible en un disco.



Ejemplo
 
rutina_absoluteRead: transfiere de un o mas sectores al buffer especificado accesando directamente a los sectores logicos, en caso de error se enciende el bit de acarreo y Ax con el codigo de error.

 
 
 
El programa no se ejecuta correctamente, ya que sale un error que dice que no es una aplicación Win32 válida, pero estos procesos son rutinas que se usan para acceder a disco en lenguaje ensamblador.
 
 
Fuentes:
 
 
 

martes, 12 de noviembre de 2013

Actividad para competencia


1. Pregunta de  código ( lenguaje ensamblador), corrección de error, contenido de registro, etc.
 
 

2. Sistemas numéricos ( conversiones, sumas, etc)
 
 
 

3. Conceptos ( registros, cpu, etc)
 

lunes, 11 de noviembre de 2013

Actividad 12

Actividad #12
En un lenguaje de su conocimiento debe Hacer un programa para imprimir 100 veces un mensaje
1. Sin usar procedimientos
2. Usando llamadas a procedimientos
3. Incluya una funcion de tiempo que imprima el tiempo de inicio y el tiempo al final para medir el tiempo de ejecución
 
El primer programa consta de cien líneas para la impresión, es decir una línea por impresión, lo que lo hace un código largo.
 

 
Ejecución del programa


 
El segundo programa hace lo mismo que el primero pero usa mucho menos líneas de código.
 
 
Ejecución del programa


 
Podemos observer que el tiempo en segundos es el mismo, pero en realidad tarda menos el segundo programa por el hecho de usar menos líneas de código, es decir, que no tiene que leer 100 líneas, sino solo el for.