Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Macros y Procedimientos
Macros y Procedimientos
Lenguaje ensamblador
Nombre de la Licenciatura
Ingeniería en Sistemas
c Computacionales
Matrícula
000015772
Nombre de la Tarea
Tarea 6
Unidad #
Macros y procedimientos
Fecha
21/10/15
Unidad 6. Macros y procedimientos
Lenguaje Ensamblador, Tarea 6
MACROS Y PROCEDIMIENTOS
Introducción:
Desarrollo:
Ejercicios de programación:
1) Escriba SOLO UNA de las siguientes macros (El resultado se deja en DX):
• Macro para calcular la suma de los enteros que hay entre n1 y n2 (incluyéndolos).
2) Escriba una macro que reciba los coeficientes (enteros) de una ecuación cuadrática y
determine el valor de las raíces, si éstas son enteras.
3 ; a*x^2 + b*x + c = 0
4 ; Prototipo de C:
5 ; int quadratic( double a, double b, double c,
6 ; double * root1, double *root2 )
7 ; Par´ametros:
8 ; a, b, c - Coeficientes de la ecuaci´on cuadr´atica (ver arriba)
9 ; root1 - Apuntador al double que almacena la primera ra´ız
10 ; root2 - Apuntador al double que almacena la segunda ra´ız
11 ; Valor de retorno:
12 ; devuelve 1 si las ra´ıces son reales si no 0
13
14 %define a qword [ebp+8]
Unidad 6. Macros y procedimientos
Lenguaje Ensamblador, Tarea 6
Assembler;
Asm
Mov AX,0600h
Mov BH,18h
Mov CX,0000h
Unidad 6. Macros y procedimientos
Lenguaje Ensamblador, Tarea 6
Mov DX,184Fh
Int 10h
End
.model tiny
.data
.code
clear macro
mov ah,00h ;limpia la pantalla
mov al,03h
int 10h
endm
.startup
clear ;macro clear
http://tipsparaisc.blogspot.mx/2012/04/ensamblador-8086-modo-13h-paleta-de.html
copiar el ejemplo de esa pág, posteriormente eliminar estas lineas
III) recibe: procedimiento que recibe un entero de varias cifras por teclado y lo coloca en
la pila
Unidad 6. Macros y procedimientos
Lenguaje Ensamblador, Tarea 6
4) Escriba UNO SOLO de los siguientes procedimientos (el resultado se deja en DX):
• Determine el mayor, menor de n valores enteros guardados en la pila.
• Calcule el promedio con dos decimales de n valores enteros en la pila.:
.Model Small
.Stack 64
.Data
msj Db 0ah,0dh, ' Digita las 3 calificaciones: ','$'
msj2 Db ' Aprobado','$'
msj3 Db ' Reprobado','$'
msj4 Db 0ah,0dh, ' Desea capturar otro alumno? 1.-Si, 2.-No','$'
num db 0
sum db 0
prom db 0
.Code
inicio:
mov cx,03h ;numero de calificaciones a pedir
mov bl,0000h
mov al,0000h
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj
int 21h
otro: ;Imprime el mensaje si quiere otro promedio y compara con 1 para repetir todo el programa
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj4
int 21h
mov ah,01h
int 21h
cmp al,31h
je inicio
ja salir
jb salir
salir:
mov ah,04ch
int 21h
end inicio
• Cuente las veces que un número x aparece dentro de los primeros n valores de la pila.
Entregue sólo los archivos *.asm y una librería *.lib una vez que haya probado el
correcto funcionamiento de cada programa, procedimiento o macro.
Unidad 6. Macros y procedimientos
Lenguaje Ensamblador, Tarea 6
Conclusión:
Los macros son una herramienta muy importante, ya que nos facilitan la manera de simplificar
el código de los programas, al llamar la macro en determinada sección del código para realizar
una tarea específica, de igual manera los procedimientos nos ayudan a crear programas
legibles, precisos y fáciles de modificar.
Bibliografía:
Scribd (2010) Ensamblador. En Scribd. Consultado el 20 de octubre del 2015. Disponible en:
https://es.scribd.com/doc/23105148/Unidad-III-Ensamblador