jueves, 28 de noviembre de 2013

Conteste lo siguiente: (Actividad del 25 de Noviembre de 2013).

1. Qué es el acceso a dispositivos de almacenamiento.
Dispositivo de almacenamiento de acceso directocualquier tipo de dispositivo de almacenamiento secundario que tiene un tiempo de acceso bajo en proporción a su capacidad.


2. 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 tamamaño de un sector se mide en bytes y depende de las caracteristicas del disco.


3. Mencione y describa las unidades básicas de adaptador de video.
El adaptador de video consta de 3 unidades básicas, las cuales se mencionan y describen a continuación:
  • 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.
  • El video de BIOS. Actúa como una interfaz con el adaptador de vídeo, contiene rutinas, como para establecer el cursor y desplegar caracteres.
  • El área de despliegue de vídeo 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 esa ´área sus datos. Las localidades del adaptador de vídeo dependen de los modos de vídeo que se estén usando. Para los adaptadores principales, a continuación están las direcciones del inicio de los segmentos de despliegue de vídeo:
    • A000:[0] Utilizada para descripción de fuentes cuando está en modo de 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.
El monitor gráfico de color RGB común permite la entrada de señales que son enviados a tres cañones de electrones (rojo, verde y azul, para cada uno de los colores primarios aditivos.

lunes, 25 de noviembre de 2013

Acceso a discos en lenguaje ensamblador


¿Qué es?
Dispositivo de almacenamiento de acceso directocualquier tipo de dispositivo de almacenamiento secundario que tiene un tiempo de acceso bajo en proporción a su capacidad.
 
 
¿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 tamamañ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.


Un ejemplo podria ser: 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.
 


martes, 12 de noviembre de 2013

Ejemplos de programas.





con macros



 

Programa: 100 veces un mensaje.

Aquí se describe como se hizo que un programa repitiera 100 veces un mismo mensaje de manera manual.

 
 
Aquí se muestra el mismo programa usando un procedimiento para su tarea:


Y aquí están sin procedimiento y con procedimiento mostrando el tiempo en ejecución respectivamente:
 
 

miércoles, 6 de noviembre de 2013

Primer Programa. If-then


Segundo programa If-then-else

Tarea Instrucciones 28.

SHL  (Shift Left = desplazamiento a la izquierda)
Se desplazan a la izquierda los bits del operando destino tantas posiciones como indique el operando fuente. El desplazamiento de una posición se realiza de la siguiente forma: el bit de mayor peso del operando se desplaza al bit CF del registro de estado, el resto de los bits se desplazan una posición hacia la izquierda, y la posición de menor peso se rellena con un 0. Este proceso se representa en la figura siguiente. 


SAL (Shift Arithmetic Left = desplazamiento aritmético a la izquierda)

El objetivo de un desplazamiento aritmético a la izquierda es multiplicar un operando, interpretado con signo, por una potencia de 2.
Para llevar a cabo este tipo de desplazamiento, hay que desplazar los bits del operando hacia la izquierda introduciendo ceros por su derecha. En realidad, este tipo de desplazamiento es idéntico al llevado a cabo por la instrucción shl; por tanto, sal y shl son, de hecho, la misma instrucción y se codifican con el mismo código máquina.


SHR (DESPLAZAMIENTO A LA DERECHA) SHR (Shift Right = desplazamiento a la derecha)
La instrucción shr funciona de la misma forma que shl, pero desplazando los bits a la derecha en lugar de a la izquierda, tal y como se muestra en la figura siguiente.



SAR (Shift Arithmetic Right = desplazamiento aritmético a la derecha)
Esta instrucción desplaza los bits del operando destino a la derecha tantos bits como indique el operando fuente. Esta forma de funcionamiento es similar a la de la instrucción shr; sin embargo, ambas instrucciones se diferencian en que sar, en vez introducir ceros por la izquierda del operando, replica el bit de mayor peso (bit de signo) en cada desplazamiento. Esquemáticamente, la instrucción sar trabaja de la siguiente forma:
El desplazamiento a la derecha realizado por la instrucción sar recibe el nombre de aritmético porque sirve para dividir un operando entre una potencia entera de 2.
El desplazamiento aritmético a la derecha de un operando (considerado con signo) n posiciones equivale a la división entera del operando entre 2n.


ROL
Al ejecutar una instrucción ROL, el bit más significativo del dato es desplazado hacia la bandera de acarreo y también hacia la posición del bit memos significativo, por lo cual todos los bits restantes son rotados o movidos hacia la izquierda.
ROR
Funciona igual con la excepción de que este rota los bits a la derecha.
RCL
En el caso de RCL, el bit más significativo pasa hacia la bandera de acarreo, el bit que se encontraba en la bandera de acarreo pasa al bit menos significativo y finalmente los bits restantes son rotados hacia la izquierda.
RCR
La instrucción RCR funciona igual, pero aplica su rotación hacia la derecha. 


Programa: Rota.ASM Descripción: Este programa ilustra el uso de las instrucciones de rotación y desplazamiento.
.MODEL TINY
.DATA
dato1 dw 10 ; variable de tipo entero
.CODE
INICIO: ; Punto de entrada al programa
mov ax,1 ; AX=1
mov bx,10 ; BX=10
shl ax,1 ; ax=ax*2
mov cx,3 ; contador igual a 3
shl ax,cl ; ax=ax*8
shr bx,1 ; bx=bx/2
mov cx,2 ;
shr bx,cl ; bx=bx/4
shl dato1,1 ; dato1=dato1*2
mov ax,1 ; ax=1
rol ax,1 ; rotar ax 1 vez
mov bx,-10 ; bx=-10
sal bx,1 ; bx=bx*2
mov ax,4c00h ; Terminar
int 21h ; Salir al dos
END INICIO
END

jueves, 31 de octubre de 2013

Programa 24.Octubre.2013


Tenemos el programa ejecutándolo en el cmd y al final, también el programa ejecutado manualmente.






REVERSE.

El programa de reverse, una vez creado y convertido a .asm.
Abrimos el cmd y ahí lo mandamos llamar, así como también vemos los registros que tiene así como los movimientos de los mismos aplicando el debug.





Una vez que nos saca del debug porque ya no hay instrucciones, a continuación hay un ejemplo de lo que realmente hace el programa de reverse. 


JMP Ejecutado 10 veces.








Mientras que de forma manual está así:

miércoles, 30 de octubre de 2013

Análisis y pruebas de programa Loop.



Este programa define el número de líneas como máximo para listar en la página en la primera línea. Al igual que en el otro programa de JMP define el título y el modelo de memoria.

Luego, inicia el código. En este código se comienza mediante la generación de código empezando en el desplazamiento de dirección 100.
Se inicia el proceso.

Asigna valor a AX, BX y DX moviendo 01 a dichos registros y moviendo 10 al registro CX.

Luego está el nombre de la etiqueta indicando las veces de iteraciones que se tendrán, en este caso 20.

Luego, suma 1 al valor del registro AX, después suma el valor de AX al registro BX, posteriormente multiplica por 2 a DX e inicia el ciclo, restando de uno en uno hasta que sea cero.

Luego hace un movimiento del valor hexadecimal 4C00 al registro AX, ocurre la interrupción al cumplirse lo anterior y termina el proceso.

Finaliza el programa.