DESARROLLAR CÓDIGOS EN LENGUAJE ENSAMBLADOR
Enviado por THE 4REST • 11 de Mayo de 2022 • Documentos de Investigación • 1.655 Palabras (7 Páginas) • 196 Visitas
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 |
...