Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ARITMÉTICAS.
UNIVERSIDAD DE SONSONATE.
FACULTAD DE INGENIERÍA Y
CIENCIAS. NATURALES.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
PROGRAMACIÓN DE BAJO NIVEL.
INSTRUCTOR:
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.
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.
7) Repetimos el proceso para mostrar el mensaje y pedir el segundo valor para almacenarlo en n2.
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":
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
17) Listo, concluimos las impresiones en pantalla, pero nos falta algo importante antes de terminar el programa;
debemos limpiar los registros:
20) Guardamos los cambios nombrando el archivo como "Ejemplo_Aritmetica.asm" y procedemos al ensamblaje y
ejecución del mismo.
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
Ensamblaje y ejecución.
8|Página
[GUIA 3: OPERACIONES ARITMÉTICAS. ] PROGRAMACIÓN DE BAJO NIVEL
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