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

DESARROLLAR CÓDIGOS EN LENGUAJE ENSAMBLADOR


Enviado por   •  11 de Mayo de 2022  •  Documentos de Investigación  •  1.655 Palabras (7 Páginas)  •  196 Visitas

Página 1 de 7

TAREA 4 DESARROLLAR CÓDIGOS EN LENGUAJE ENSAMBLADOR

NOMBRE DEL ESTUDIANTE: HAIDER ANDRÉS VERDESIA FUENTES

                                         CC: 1003379526

TUTOR: FABIAN ENRIQUE HOYOS PATERNINA

Universidad Nacional Abierta y a Distancia-UNAD

ECBTI

Ingeniería de sistemas

Valledupar – 2022


Introducción

Este documento describe el desarrollo de los ejercicios sugeridos en la guía. Actividades basadas en lecturas sugeridas por el tutor, con infografías realizadas El concepto de instrucciones de salto en lenguaje ensamblador asociativo, se elaboran dos códigos en lenguaje ensamblador para compilar en el emulador emu8086.


Objetivos

  • Comprender cómo funcionan los registros de propósito general
  • Desarrollar prototipos funcionales que los estudiantes podamos entender y Operaciones en lenguaje ensamblador en el procesador 8086.

Introducción

Actividad #2

El estudiante crea una tabla explicativa de las instrucciones en lenguaje ensamblador referentes a: saltos incondicionales, saltos condicionales, comparaciones, decisiones y bucles. Ejemplo:

Instrucción

Descripción

Sintaxis

Ejemplo:

CMP

Básicamente, comparar un valor con otro es como restar uno de otro…

CMP destino, fuente

CMP AL, 10

ADD

Suma los operando y almacena resultado al destino

ADD destino

ADD CH

CALL

Salta fuera de la línea salvando la pila, la dirección de la instrucción siguiente, volviendo al

CALL llamado

CALL subrutina

DEC

Resta de los operando las instrucciones y almacena en el mismo

DEC destino

DEC

DIV

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

AX

DX:AX,

IDIV

Consiste básicamente en lo mismo que la instrucción DIV, solo que esta última realiza la operación con signo.

Instrucción DIV.

División con signo:

DIV

MOV

Transfiere Bytes desde el operando fuente al operando destino

MOV fuente destino

MOV AX, MOV CX

RET

Retorna procedimientos invocado por CALL

RET inmed

RET

WAIT

Se encarga de Guardar

WAIT

Guarda

NOT

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

Sintaxis

NOT destino

NOT RAX

SHL

Desplaza a la izquierda los bit de destino en el segundo operando

SHL destino

Destino=destino*2

SHR

Desplaza a la derecha los bit de destino  en el segundo operando

SHR destino

SHR RAX,

TEST

Realiza una conjunción, bit por bit, de los operados, 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.

.

TEST destino

TEST RAX,

IMUL

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.

IMUL fuente

IMUL EAX,

LOOP

La instrucción loop decrementa CX en 1, y transfiere el flujo del programa a la etiqueta dada como operando si CX es diferente a 1.

LOOP ciclo en el programa

MOV RCX, 10: instrucciones 10 veces repetidas: LOOP bucle.

JMP

Esta instrucción se utiliza para desviar el flujo de un programa sin tomar en cuenta las condiciones.

JMP Salto incondicional

JMP bucle,

AND

Con esta instrucción se lleva a cabo la operación "y" lógica de los dos operados.

AND destino

Fuente Destino | Destino

--------------------------

1 1 | 1

1 0 | 0

0 1 | 0

0 0 | 0

OR

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

OR destino

Fuente Destino | Destino

--------------------------

1 1 | 1

1 0 | 1

0 1 | 1

0 0 | 0

...

Descargar como (para miembros actualizados) txt (7 Kb) pdf (248 Kb) docx (169 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com