top of page

Instruciones Basicas de TASM

La estructura de un programa está conectada con:

 

Los ficheros de código fuente llevarán la extensión *.ASM

Los ficheros de listado llevarán la extensión *.LST

Los ficheros de código objeto llevarán la extensión *.OB]

Los ficheros de errores llevarán la extensión *.ERR

Los ficheros ejecutables en formato Intel Hex llevarán la extensión *.HEX

Comentario descriptivo del programa (utilizar una cabecera estandarizada).

Definir el micro controlador que se usará (con las directivas LIST e INCLUDE).

Introducir las opciones de compilación (que serán vistas más adelante) (opcional).

Establecer las constantes que se usarán (con la directiva EQU).

Reservar espacios de memoria (directiva RES) (si es necesario).

 

Etiquetas. Las etiquetas se rigen por las siguientes normas:

Debe situarse en la primera columna.

Debe contener únicamente caracteres alfanuméricos.

El máximo de caracteres es de 31.

 

Operación. En esta columna se situarán las instrucciones. El campo del código de operación es el único que nunca puede estar vacío; éste siempre contiene una instrucción o una directiva del ensamblador.

 

Operandos El campo de operandos o de dirección puede contener una dirección o un dato, o puede estar en blanco. Normalmente contendrá registroso literales con los que se operará (f, l ok , b y w).

 

Comentario. El campo del comentario o de etiquetas es opcional. Aquí se situará cualquier comentario personalizado que deseemos. Estos son útiles para saber qué hace un programa sin tener que descifrar el código entero. El compilador (ensamblador) ignorará todo texto más allá del carácter punto y coma ";".

 

INTRODUCCION BASICA DEL LENGUAJE ENSAMBLADOR

Instrucciones lógicas. Son utilizadas para realizar operaciones lógicas sobre los operando.

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 operando.

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

 

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.

 

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.

 

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 operados.

 

TEST

Propósito: Comparar lógicamente 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.

 

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.

Instrucciones aritméticas. Se usan para realizar operaciones aritméticas sobre los operando.

 

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.

 

ADD

Propósito: Adición de los operandos.

Sintaxis: ADD destino, fuente

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

 

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 fue un byte el cociente se almacena en el registro AL y el residuo en AH, si fue una palabra el cociente se guarda en AX y el residuo en DX.

IDIV

Propósito: División con signo

Sintaxis: IDIV fuente

Consiste básicamente 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.

 

MUL

Propósito: Multiplicación sin signo

Sintaxis: MUL fuente

El ensamblador asume que el multiplicando será 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.

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.

 

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.

 

SUB

Propósito: Substracción

Sintaxis: SUB destino, fuente

Resta el operando fuente del destino.

© 2023 por Secretos de Armario. Creado con Wix.com

  • b-facebook
  • Twitter Round
  • Instagram Black Round
bottom of page