Sei sulla pagina 1di 10

GUIA 3: OPERACIONES

ARITMÉTICAS.
UNIVERSIDAD DE SONSONATE.
FACULTAD DE INGENIERÍA Y
CIENCIAS. NATURALES.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
PROGRAMACIÓN DE BAJO NIVEL.
INSTRUCTOR:

Ing. Francisco Daniel Chafoya Castro.

CORREO ELECTRONICO:

daniel.chafoya@usonsonate.edu.sv
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

Contenido
OBJETIVOS .......................................................................................................................................................................... 3
OPERACIONES ARITMÉTICAS EN ENSAMBLADOR .............................................................................................................. 3
Ejemplo 1: Programa que solicita dos números y realiza las 4 operaciones aritméticas básicas (Suma, Resta,
Multiplicación y División) enteras con ellos. [ADD, SUB, MUL, DIV] .............................................................................. 3
Ejemplo 2: Programa para incrementar un numero. ..................................................................................................... 8
Ejemplo 3: Programa para decremento de un numero. ................................................................................................ 9
ASIGNACIÓN ..................................................................................................................................................................... 10

2|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

OBJETIVOS
 Crear programas en lenguaje ensamblador que realicen operaciones aritméticas básicas.
 Crear programas en lenguaje ensamblador que realicen operaciones de incremento y decremento de un
numero.
 Crear programas en lenguaje ensamblador que realicen operaciones aritméticas complejas.

OPERACIONES ARITMÉTICAS EN ENSAMBLADOR


Ejemplo 1: Programa que solicita dos números y realiza las 4 operaciones aritméticas
básicas (Suma, Resta, Multiplicación y División) enteras con ellos. [ADD, SUB, MUL, DIV]

PROCEDIMIENTO PASO A PASO


0) Para iniciar nuestro programa tomamos como referencia el archivo base que a continuación se muestra.

1) Tomaremos en cuenta el código base para la creación del programa siguiente:

2) Declaramos las variables a utilizar, las cuales se encargarán de almacenar los 2 números a leer y el
almacenamiento de los resultados. A las cuales se les asignara un valor.

3|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

3) En la misma sección crearemos variables que almacenarán los mensajes a mostrar. Y le asignaremos el mensaje a
utilizar. Recordar que se utiliza la coma (,) para concatenar, el valor 10 y 13 en código ASCII es para salto y
retorno.

También creamos los formatos de entrada y salida que se usaran para pasarle a las funciones SCANF y PRINTF
respectivamente.

Teniendo listas las variables a utilizar comenzamos con el programa ensamblador. Lo siguiente irá en la sección
indicada para el código ensamblador.

4) Comenzaremos por introducir a la pila los registros a utilizar.

5) Ahora imprimimos el primer mensaje en pantalla (solicitando el primer número).

6) Pediremos el primer número y se almacenará en la variable n1.

7) Repetimos el proceso para mostrar el mensaje y pedir el segundo valor para almacenarlo en n2.

8) Realizaremos la operación de la suma (ADD) y la almacenaremos en la variable que creamos suma.

4|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

9) Para la resta se realiza un proceso parecido a la suma la diferencia es que se usa SUB.

10) Lo mismo para la multiplicación con la diferencia que para este caso usamos IMUL.

11) La división (IDIV) tiene algunas variantes a considerar, entre ellas recordar que si la fuente es de 32 bits, entonces
EDX/EAX se divide por el operando y el cociente se almacena en EAX, y el residuo en EDX.
La instrucción NEG niega su operando calculando su complemento a 2. El operando puede ser cualquier registro
de 8, 16, 32 bits o un lugar de memoria.

12) Una vez terminado el proceso de la operación de los resultados pasamos a la impresión en pantalla de los
resultados. Comenzamos por imprimir el resultado de la suma que se encuentra almacenado en la (directiva)
"suma":

13) Para imprimir el resultado de la resta, almacenado en "resta":

14) Repetiremos el mismo proceso para imprimir el resultado de la Multiplicación, esta vez almacenado en "multi".

15) Finalmente para imprimir el resultado de la división, lo hacemos en 2 partes; imprimiendo primero su cociente
almacenado en la variable "divi":

5|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

16) Y posteriormente su residuo, almacenado en "resi":

17) Listo, concluimos las impresiones en pantalla, pero nos falta algo importante antes de terminar el programa;
debemos limpiar los registros:

18) Y sacar de la pila aquellos que introducimos:

19) Ahora terminemos el programa:

20) Guardamos los cambios nombrando el archivo como "Ejemplo_Aritmetica.asm" y procedemos al ensamblaje y
ejecución del mismo.

Observa que opera y muestra los signos de forma adecuada.

6|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

7|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

Ejemplo 2: Programa para incrementar un numero.


El siguiente ejemplo muestra como incrementar con la operacion INC.

Ensamblaje y ejecución.

8|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

Ejemplo 3: Programa para decremento de un numero.


El siguiente ejemplo muestra como hacer el decremento de un numero con la operacion DEC.

Ensamblaje y ejecución.

9|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL

ASIGNACIÓN
1. Crear un programa en ensamblador que pida los valores necesarios para resolver la fórmula cuadrática
modificada. Y mostrar sus 2 resultados.
−𝑏 ± (𝑏 2 − 4𝑎𝑐)
𝑥=
2𝑎
Indicaciones de entrega: Deberá mostrar al instructor el desarrollo de su asignación y la ejecución de la misma,
posteriormente se deberá subir a la plataforma en una carpeta comprimida con el nombre y carne del estudiante. Por
cada ejercicio se requieren los 3 archivos, de preferencia cada uno en carpeta separada.

10 | P á g i n a

Potrebbero piacerti anche