Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
- ; Este programa hace una simple suma de dos números utilizando el modo de direccionamiento inmediato
- ; en él se utilizan registros e instrucciones del ensamblador
- ;
- ; Ensamble este programa en el menú "Project" usando la opción
- ; "Console Assemble and Link"
- ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
- .486 ;crea codigo de 32 bits
- .model flat, stdcall ;modelo de memoria de 32 bits
- option casemap: none ;sensible a mayusculas y minusculas
- include \masm32\include\windows.inc ;esta linea siempre debe ir primero
- include \masm32\macros\macros.asm ;macros de apoyo de MASM
- ; -----------------------------------------------------------------
- ;Incluir los archivos que tienen prototipos con formato de MASM para las llamadas de función
- ; -----------------------------------------------------------------
- include \masm32\include\masm32.inc
- include \masm32\include\gdi32.inc
- include \masm32\include\user32.inc
- include \masm32\include\kernel32.inc
- include \masm32\include\masm32rt.inc
- ; ------------------------------------------------
- ; archivos de biblioteca que tienen las definiciones de las exportaciones
- ; de función y código probado precompilado confiable.
- ; ------------------------------------------------
- includelib \masm32\lib\masm32.lib
- includelib \masm32\lib\gdi32.lib
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\kernel32.lib
- .data?
- var1 DB 10 dup(?)
- resultado DW 10 dup(?)
- .code
- start:
- print chr$("Programa que suma dos numeros en MASM32",13,10)
- print chr$(13,10,13,10)
- ;call main
- mov eax, 1
- ciclo: call main
- loop ciclo
- exit
- ;************************************************
- main proc
- LOCAL num1: DWORD
- LOCAL num2: DWORD
- LOCAL resu: DWORD
- LOCAL bandera: DWORD
- mov num1, sval(input("Ingrese primer numero: "))
- mov num2, sval(input("Ingrese segundo numero: "))
- mov eax, num1
- mov ecx, num2
- add ecx, eax
- push ecx
- print "El resultado es: "
- pop eax
- push eax
- invoke dwtoa, eax, addr resultado
- invoke StdOut, addr resultado
- print chr$(13,10,13,10)
- pop ecx
- cmp ecx, 100
- je igual
- jg mayor
- jl menor
- igual:
- print chr$("EL resultado es igual a 100",13,10)
- jmp over
- mayor:
- print chr$("El resultado es mayor que 100",13,10)
- jmp over
- menor:
- print chr$("El resultado es menor que 100",13,10)
- over:
- mov bandera, sval(input("1.- Continuar, 0.- Salir: "))
- mov ecx, bandera
- ;En caso de que salga
- ;print str$(input("Presione enter para abandonar la aplicacion"))
- ret
- ;invoke StdIn, ADDR var1, 10
- main endp
- ;***********************************************************
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement