ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

EXPERIENCIA LABORAL

bushydo24402 de Julio de 2013

3.083 Palabras (13 Páginas)670 Visitas

Página 1 de 13

1. INSTRUCCIONES.

1.1 Concepto.

Se le denomina instrucción al conjunto de datos insertados en una secuencia estructurada que el procesador interpreta y ejecuta. Un conjunto de instrucciones especifica qué instrucciones pueden ser ejecutadas y entendidas por la CPU.

Una instrucción es una única operación de un procesador definida por un conjunto de instrucciones de una arquitectura. Las instrucciones incluyen operaciones aritméticas, compuertas lógicas, instrucciones de datos (como leer o escribir) e instrucciones control (“si”, “retornar”, “ir a…”). Los tipos de instrucciones varían de una arquitectura a otra, y determinan el funcionamiento de la CPU que las ejecuta. El programador utiliza instrucciones para controlar el CPU.

1.2 Clasificación.

Las instrucciones se clasifican principalmente en cuatro tipos de conjuntos: transferencia, aritméticas, lógicas y control.

1.2.1 De Transferencia.

En este tipo de instrucciones se transfieren datos de una localización a otra. Los pasos para realizarlo son determinar las direcciones de origen y destino de memoria.

1.2.2 Aritméticas/Lógicas.

Pueden implicar la transferencia de datos antes o después. Realizan operaciones aritméticas de las que se encarga la “Unidad Aritmético Lógica” (ALU). Pueden clasificarse en un operando (valor absoluto/negación) o dos operando (suma y resta). También realiza la comparación entre dos valores.

1.2.3 De Transferencia de Control.

Su función es actualizar el puntero de instrucciones, o dicho de otro modo, el registro del CPU que indica la posición del procesador en la secuencia de instrucciones. Puede apuntar directamente a otra ubicación del programa, o hacerlo mediante el cumplimiento de una condición lógica.

1.3 Instrucciones Principales.

1.3.1 Instrucciones de Transferencia.

Son utilizadas para mover los contenidos de los operando. Cada instrucción puede usarse con diferentes modos de direccionamiento: La instrucción MOV transfiere datos entre celdas de memoria, registros y acumuladores. Las instrucciones de transferencia son MOV, XCHG, IN, OUT, XLAT, LEAD, LDS, LES, LAHF, SAHF, PUSH, POP.

MOV [destino], [fuente]

MOV mueve el contenido de una ubicación a otra: destino es el lugar donde se moverán las instrucciones, fuente es el lugar de origen de las instrucciones.

MOV AX, 0006h

MOV BX, AX

MOV AX, 4C00H

INT 21H

El programa mueve el valor (0006h) a AX, luego mueve el valor de AX a BX. Luego mueve un nuevo valor a AX y finaliza la ejecución con una interrupción. No ocupa banderas tarda un ciclo para cualquier operación, para mover registros ocupa dos ciclos.

1.3.2 Instrucciones Aritméticas.

Se utilizan para realizar operaciones de cálculo con los contenidos de los registros. Este grupo de instrucciones puede modificar las banderas de acuerdo al resultado. Las instrucciones de transferencia son ADD (y variaciones), SUB, INC, DEC y MUL.

ADD [base], [suma]

ADD sumará el contenido de un registro a otro: base es el valor al que se le sumará una cantidad, suma es la cantidad que será añadida.

MOV AX, 5

MOV BX, 5

ADD AX, BX

ADD AX, 5

INT 21H

El programa asigna el valor 5 a AX, luego asigna 5 al registro BX. Luego sumará mediante ADD el valor de BX a AX, dando como resultado A base 16 (10 en decimal). Al nuevo valor de AX le sumará 5, siendo AX=F base 16 (15 base 10) y finaliza la ejecución con una interrupción. Ocupa las banderas C, AC y OV. Tarda un ciclo para cualquier operación.

1.3.3 Instrucciones Lógicas.

Si hablamos de un set de instrucciones aritméticas y lógicas, debe incluirse entonces las compuertas AND, OR, NOT y XORT. Cada compuerta aplicará la lógica de tablas a los registros que se comparen.

AND [dato1], [dato2]

AND comparará el contenido de un registro con otro: dato1 será descompuesto en binario y comparado con dato2 en binario, y el resultado se dará basándose en la lógica de la tabla de verdad de AND.

MOV AX, 2

MOV BX, 2

AND AX, BX

INT 21H

AX posee el valor 2 (10 base 2) y BX posee el mismo valor: 2 (10 base 2) AND comparará ambos registros y almacenará en AX el resultado de la comparación. Como la lógica de AND indica que solo puede ser verdadero (1) si ambos son verdaderos, el resultado almacenado en AND será 2 y finalizará el programa con una interrupción. Si por otro lado el valor de BX o AX fuera 1. El resultado de la comparación sería 0. No ocupa banderas, realiza 2 ciclos por dato.

1.3.4 Instrucciones de Control.

Las instrucciones de control influyen en el flujo de los procesos sea por el uso de condiciones o por interrupciones. O bien, a través de contadores que se incrementan según la necesidad. Las principales instrucciones de control son JUMP y LOOP, con sus respectivas variaciones.

JMP [dirección] – JMP [etiqueta]

JMP saltará hacia la dirección especificada o a la etiqueta especificada. JMP puede cargar el PC (contador del programa) con el resultado de las operaciones o condiciones que se realicen.

JMP 500H

INT 21H

JMP se saltará a la dirección 500H y finalizará con una interrupción. JMP no ocupa banderas y tarda dos ciclos.

2. INTERRUPCIONES.

2.1 Concepto.

Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa (generalmente perteneciente al sistema operativo, o al BIOS). Luego de finalizada dicha subrutina, se reanuda la ejecución del programa.

2.2 Funciones.

Delegar en los dispositivos la responsabilidad de comunicarse con el procesador cuando lo necesitaran. El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera de que estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, una transferencia de información, una condición de error, etc.).

2.3 Forma de Uso.

; PROGRAMA

; MANEJO DE PANTALLA

PILA SEGMENT STACK

DB 3 DUP ('AREA DE PILA')

PILA ENDS

DATOS SEGMENT

A DB 'MANEJO DE PANTALLA’

DB 'EN LENGUAJE ENSAMBLADOR $'

DATOS ENDS

CODIGO SEGMENT

PR3 PROC FAR

ASSUME DS: DATOS, SS: PILA, CS: CODIGO

PUSH DS

MOV AX, 0

PUSH AX

MOV AX, DATOS

MOV DS, AX

MOV AH, 9

LEA DX, A

INT 21H

RET

PR3 ENDP

CODIGO ENDS

END PR3

2.4 Tipos de Interrupciones.

2.4.1 Interrupción 21H

Propósito: Llamar a diversas funciones.

Sintaxis: Int 21H

Cuando trabajamos en MASM es necesario especificar que el valor que estamos utilizando es hexadecimal.

Esta interrupción tiene varias funciones, para accesar a cada una de ellas es necesario que el registro AH se encuentre el número de función que se requiera al momento de llamar a la interrupción.

Funciones para desplegar información al video.

02H Exhibe salida

09H Impresión de cadena (video)

40H Escritura en dispositivo/Archivo

Funciones para leer información del teclado.

01H Entrada desde teclado

0AH Entrada desde teclado usando buffer

3FH Lectura desde dispositivo/archivo

Funciones para trabajar con archivos.

Introducción al manejo de archivos.

Método FCB

0FH Abrir archivo

14H Lectura secuencial

15H Escritura secuencial

16H Crear archivo

21H Lectura aleatoria

22H Escritura aleatoria

Handles

3CH Crear archivo

3DH Abrir archivo

3EH Cierra manejador de archivo

3FH Lectura desde archivo/dispositivo

40H Escritura en archivo/dispositivo

42H Mover apuntador de lectura/escritura en archivo

Función 02H

Uso: Despliega un carácter a la pantalla.

Registros de llamada:

AH = 02H

DL = Valor del carácter a desplegar.

Registros de retorno:

Ninguno.

Esta función nos despliega el carácter cuyo código hexadecimal corresponde al valor almacenado en el registro DL, no se modifica ningún registro al utilizar este comando. Es recomendado el uso de la función 40H de la misma interrupción en lugar de esta función.

Función 09H

Uso: Despliega una cadena de caracteres en la pantalla.

Registros de llamada:

AH = 09H

DS: DX = Dirección de inicio de una cadena de caracteres

Registros de retorno:

Ninguno.

Esta función despliega los caracteres, uno a uno, desde la dirección indicada en el registro DS: DX hasta encontrar un carácter $, que es interpretado como el final de la cadena. Se recomienda utilizar la función 40H en lugar de esta función.

Función 40H

Uso: Escribir a un dispositivo o a un archivo.

Registros de llamada:

AH = 40H

BX = Vía de comunicación

CX = Cantidad de bytes a escribir

...

Descargar como (para miembros actualizados) txt (20 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com