lunes, 20 de octubre de 2008

UNIDAD II

Las aritméticas incluyen la suma y resta con o sin acarreo, incremento y decremento de un registro, comparaciones, ajuste decimal, complemento y negación.

Las lógicas incluyen las operaciones que se realizan con los operadores “AND”, “OR” y “XOR”.

Las instrucciones del ensamblador


Instrucciones lógicas:

Son utilizadas para realizar operaciones lógicas sobre los operandos:

AND

NEG

NOT

OR

TEST

XOR

Instrucciones aritméticas:

Se usan para realizar operaciones aritméticas sobre los operandos:

ADC

ADD

DIV

IDIV

MUL

IMUL

SBB

SUB

Instrucción AND

Propósito: Realiza la conjunción de los operandos bit por bit.

Sintaxis:

AND destino, fuente

Con esta instrucción se lleva a cabo la operación “y” lógica de los dos operandos:

Fuente Destino | Destino

1 1 | 1

1 0 | 0

0 1 | 0

0 0 | 0

El resultado de la operación se almacena en el operando destino.

Instrucción NEG

Propósito: Genera el complemento a 2

Sintaxis:

NEG destino

Esta instrucción genera el complemento a 2 del operando destino y lo almacena en este mismo operando. Por ejemplo, si AX guarda el valor de 1234H, entonces:

NEG AX

Nos dejaría almacenado en el registro AX el valor EDCCH.

Instrucción NOT

Propósito: Lleva a cabo la negación bit por bit del operando destino.

Sintaxis:

NOT destino

El resultado se guarda en el mismo operando destino.

Instrucción OR

Propósito: OR inclusivo lógico

Sintaxis:

OR destino, fuente

La instrucción OR lleva a cabo, bit por bit, la disyunción inclusiva lógica de los dos operandos:

Fuente Destino | Destino

1 1 | 1

1 0 | 1

0 1 | 1

0 0 | 0

Instrucción TEST

Propósito: Comparar logicamente los operandos

Sintaxis:

TEST destino, fuente

Realiza una conjunción, bit por bit, de los operandos, pero a diferencia de AND esta instrucción no coloca el resultado en el operando destino, solo tiene efecto sobre el estado de las banderas.

Instrucción XOR

Propósito: OR exclusivo

Sintaxis:

XOR destino, fuente

Su función es efectuar bit por bit la disyunción exclusiva lógica de los dos operandos.

Fuente Destino | Destino

---------

1 1 | 0

0 0 | 1

0 1 | 1

0 0 | 0

Instrucción ADC

Propósito: Adición con acarreo.

Sintaxis:

ADC destino, fuente

Lleva a cabo la suma de dos operandos y suma uno al resultado en caso de que la bandera CF esté activada, esto es, en caso de que exista acarreo.

El resultado se guarda en el operando destino.

Instrucción ADD

Propósito: Adición de los operandos.

Sintaxis:

ADD destino, fuente

Suma los dos operandos y guarda el resultado en el operando destino.

Instrucción DIV

Propósito: División sin signo

Sintaxis:

DIV fuente

El divisor puede ser un byte o palabra y es el operando que se le da a la instrucción.

Si el divisor es de 8 bits se toma como dividendo el registro de 16 bits AX y si el divisor es de 16 bits se tomara como dividendo el registro par DX:AX, tomando como palabra alta DX y como baja AX.

Si el divisor fué un byte el cociente se almacena en el registro AL y el residuo en AH, si fué una palabra el cociente se guarda en AX y el residuo en DX.

Instrucción IDIV

Propósito: División con signo

Sintaxis:

IDIV fuente

Consiste basicamente en lo mismo que la instrucción DIV, solo que esta última realiza la operación con signo. Para sus resultados utiliza los mismos registros que la instrucción DIV.

Instrucción MUL

Propósito: Multiplicación sin signo

Sintaxis:

MUL fuente

El ensamblador asume que el multiplicando sera del mismo tamaño que el del multiplicador, por lo tanto multiplica el valor almacenado en el registro que se le da como operando por el que se encuentre contenido en AH si el multiplicador es de 8 bits o por AX si el multiplicador es de 16 bits.

Cuando se realiza una multiplicación con valores de 8 bits el resultado se almacena en el registro AX y cuando la multiplicación es con valores de 16 bits el resultado se almacena en el registro par DX:AX.

Instrucción IMUL

Propósito: Multiplicación de dos enteros con signo.

Sintaxis:

IMUL fuente

Este comando hace lo mismo que el anterior, solo que si toma en cuenta los signos de las cantidades que se multiplican.

Los resultados se guardan en los mismos registros que en la instrucción MUL.

Instrucción SBB

Propósito: Substracción con acarreo

Sintaxis:

SBB destino, fuente

Esta instrucción resta los operandos y resta uno al resultado si CF está activada. El operando fuente siempre se resta del destino.

Este tipo de substracción se utiliza cuando se trabaja con cantidades de 32 bits.

Instrucción SUB

Propósito: Substracción

Sintaxis:

SUB destino, fuente

Resta el operando fuente del destino.

Direccionamiento de memoria
DIRECTO. En el direccionamiento directo, como ya señalamos, la instrucción contiene la dirección de la posición de memoria donde se encuentra el operando.
• INDIRECTO. En el direccionamiento indirecto, señalamos de nuevo, la dirección contiene no la dirección donde se encuentra el operando, sino la dirección donde se encuentra la dirección del operando.
• RELATIVO. En el direccionamiento relativo la parte dirección de la instrucción contiene el número N. En memoria la dirección del operando se encuentra sumando el numero N al número del contador del programa.
• INDEXADO. En el direccionamiento indexado como en el relativo, la parte dirección de la instrucción contiene un número N que puede ser positivo o negativo.
• REGISTRO INDIRECTO. Algunos computadores que incorporan la facultad del direccionamiento de registro indirecto tienen un registro especial, a menudo llamado registro (P)
• INMEDIATO. EN el direccionamiento inmediato, la parte de dirección de la instrucción contiene no la dirección del operando sino el mismo operando.
• INHERENTE. Ordinariamente una dirección que es parte de una instrucción se refiere a una posición de memoria.

La importancia del Lenguaje

* Lenguaje ensamblador permitirá adentrarnos al estudio del hardware de una PC.

Este lenguaje proporciona las herramientas para tomar control sobre todo lo que la computadora realiza físicamente.

Ventajas Proporciona un control absoluto sobre la PC. Los programas en ensamblador son rápidos y compactos.

Desventajas

* Una instrucción mal interpretada o un error de lógica puede crear un caos a tal grado que se requiera apagar y encender la máquina nuevamente.

Insuficiencia del conocimiento sobre el manejo interno de la máquina. El programa se vuelve más complejo conforme se agregan más rutinas o funciones adicionales. La PC tiene un punto de partida y de control que es la CPU. Toda información almacenada en la PC es procesada dentro de celdas llamadas registros. Un registro es un conjunto de 8 o 16 flip-flop cuyo contenido es manipulado simultáneamente. Los flip-flop son dispositivos electrónicos capaces de almacenar dos niveles de voltaje (Bajo o Alto).

Bajo 0.5 v - PC - Apagado 0 Alto 5v - PC - Encendido 1

* Cada uno de estos estados es más conocido como BIT (B Inary? digiT)

A un grupo de 16 bits se le conoce como palabra, y dicha palabra puede dividirse en grupos de 8 bits conocidos como bytes. Un grupo de 4 bits se le conoce como nibble. Un registro de 16 bits o flip-flops puede almacenar un numero binario de 16 dígitos. Visto de otra forma, el registro tiene la capacidad de representar 65,536.

UNIDAD I

QUE ES SOFTWARE DE SISTEMA?

PROGRAMAS QUE PERMITEN INTERACTUAR CON LA COMPUTADORA.

Funcionar al hardware y a la computadora

Tipos de software

-software de aplicación: lenguajes de programación (c sharp. C etc.,)

-software de uso generalLWord, Excel ppt etc.)

-software de sistema (sistema operativo, traductores *compiladores e interpretes* ensambladores, cargadores y ligadores)

FASES DEL PROCESO DEK PROGRAMA A LA EJECUCION

Programa Fuente---------traductor-------encabezado

*interprete

*Compilador

Modelo Von NewMan

Registros generales

AX: REGISTRO ACUMULADOR= Optimiza memoria, operaciones aritméticas(X, /), Uso general, llamado de funciones en interrupciones.

BX: Registro Base=Uso de propósito general operaciones aritméticas, uso en direccionamiento indirectos.

CX: Registro contador=Uso general y funciona como contador

DX; Registro de Datos= nos sirve para manipular los datos

REGISTROS DE INDICES

SI: (Indie Fuente)= Puntero fuente cadenas, direccionamiento indirecto operaciones cadenas, asociado a DS.

DI:(Índice Destino)= es un puntero de destino cadena, direccionamiento indirecto, operaciones cadenas, esta asociado a ES.

SP: Apuntador de pila= Permite al sistema accesar datos al segmento, sirve para almacenar las direcciones de retorno de subrutinas y los datos temporarios, esta asociado con el a SS, contiene el valor de inicio de pila.

BP:Puntero de Base= se utiliza para realizar direccionamientos indirectos dentro de la pila, facilita la referencia de datos y direcciones, asociado con el a SS

SEGMENTOS DE MEMORIA

CS : (Segmento de Código)=Instrucciones del programa

DS: (Segmento de Datos)=Son las variables, constantes y cadenas.

SS: (Segmento de Pila)= Estructura de pila, direccionada al inicio

ES: (Segmenta Extra)=Aplicación para segmento de datos

IP: (Puntero de Instrucciones)= Indica las siguientes instrucciones a ejecutar

IP=IP+1 E INDICA EL FLUJOP DEL PRRGRAMA.

REGISTRO DE BANDERA

Son comunes a toda la familia de procesadores de 80y 86 y sirve ara indicar el estado actual de la maquina y el resultado de procesamiento.

OF ( Overflow Flag): Indica un un BIT de orden alto (mas a la izquierda) después de una operación aritmética OF=1 desbordamiento y OF=0 no desbordamiento.

DF: (Direction Flag) Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres. DF=1 DECREMENTO DF=0 INCREMENTO

IF (Interruptt Flag) Indica que una interrupción externa com. Ola entrada desde el teclado sea procesada o ignorada IF=1 Activa Interrupción IF=0 no activa

TF (Taro Flag) permite la operación del procesador en modo de un paso TF=1 PASO A PASO TF=0 Continuo

SF (Sign Flag) Contiene el signo resultante de una operación aritmética SF=0 positivo y SF=1 Negativo

ZF (Zero Flago) Indica el resultado de una operación aritmética o de comparación ZF=1 Resuelve es 0 ZF=0 Diferente a 0

AF (Auxiliary Carry Flag) Contiene una carrera externo del bit 3 en un dato de 8 bits para aritmética especializada AF=1 Hubo Acarreos AF=0 No hubo acarreos.

PF (Parity Flag) Indica paridad par o impar de una operación Hem datos de 8 bits de bajo orden (mas a la derecha) PF=1 paridad PF=0 Paridad Impar

CF (Carry Flag) Contiene acarreos de orden mas alto mas a la izquierda después de una operación aritmética lleva el contenido de el ultimo bit en una operación de corriente o de rotación.

BUS DE DIRECCIONES

Permite accesar a la memoria de manera segmentada y utiliza la sobreposición.