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.

Actividad 11


Actividad #11
Encuentre  2 programas que usen procedimeintos en lenguaje ensamblador y 2 programas que usen macros en Lenguaje ensamblador,  mencione las diferencias entre macros y procedimientos.

Procedimientos: Son bloques de sentencias a los que les asigna un nombre de tal forma que para ejecutar estas sentencias, solo basta escribir el identificador y en caso necesario facilita los parámetros necesarios.

Ejemplos de programas con procedimientos:



 
 
 

 

 
 
 
Macros: Es un conjunto de instrucciones que tiene un nombre que las identifica.

Hay dos tipos de macros, los internos y los externos. Los internos son aquellos que estan dentro del mismo programa y externos que estan fuera del codigo fuente, pero los agregas con un include.

Ejemplos de macros para programas en ensamblador son:

 
 



 
 
 
 
 
 
 
 
La diferencia entre un procedimiento y un macro, es que los procedimientos leen línea por línea el código, y los macros no, los procedimientos usan la sentencia call para ser llamados en caso de que no esten implícitos en el código, y los macros utilizan la sentencia include cuando son externos al programas, tomando un conjunto de instrucciones que ya estan definidas y solo se ejecutan tal y como estan.

Al momento de ejecutarse la macro cada parámetro es sustituido por el nombre o valor especificado al momento de llamarla.
Podemos decir entonces que un procedimiento es una extensión de un determinado programa, mientras que la macro es un módulo con funciones específicas que puede ser utilizado por diferentes programas.
Otra diferencia entre una macro y un procedimiento es la forma de llamar a cada uno, para llamar a un procedimiento se requiere el uso de una directiva, en cambio la llamada a las macros se realiza como si se tratara de una instrucción del ensamblador.

 
Fuentes: