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.

No hay comentarios: