-
Notifications
You must be signed in to change notification settings - Fork 0
/
EJ_05_Becas_mensuales.asm
114 lines (96 loc) · 2.79 KB
/
EJ_05_Becas_mensuales.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
TITLE NombrePrograma
;DESCRPICIÓN
;Objetivo: Archivo de Ejemplo
;
; Autore(s):
; Luna Sanchez Juan Pablo.
; Ruiz Garcia Emmanuel Alejandro.
; Semestre: 8vo Semestre ISC
;FIN DESCRPICIÓN
INCLUDE Irvine32.inc
INCLUDE macros.inc
.data
; Área de Declaración de Variables
mensajeEdad BYTE "Ingrese su edad: ",0
mensajePromedio BYTE "Ingrese su promedio: ",0
mensajeBeca BYTE "Usted recibira una beca de $",0
mensajeInvitacion BYTE "Lo invitamos a estudiar más en el próximo ciclo escolar",0
beca dword 0d
edad dword 0d
promedio dword 0d
.code
mainej5 PROC
;Lógica del Programa
; Pedir la edad del estudiante
mov edx, OFFSET mensajeEdad
call WriteString
call ReadInt
mov edad, eax
; Pedir el promedio del estudiante
mov edx, OFFSET mensajePromedio
call WriteString
call ReadInt
mov promedio, eax
; Verificar la edad del estudiante
cmp edad, 18
jl menorDeEdad
; Si es mayor de edad, verificar el promedio
cmp promedio, 9
jge beca2000
cmp promedio, 7
jge beca1000
cmp promedio, 6
jge beca500
; Si el promedio es menor a 6, enviar una invitación
mov edx, OFFSET mensajeInvitacion
call WriteString
jmp fin
beca2000:
; Si el promedio es mayor o igual a 9, dar una beca de $2000
mov beca, 2000
jmp mostrarBeca
beca1000:
; Si el promedio es mayor o igual a 7.5, dar una beca de $1000
mov beca, 1000
jmp mostrarBeca
beca500:
; Si el promedio es mayor o igual a 6, dar una beca de $500
mov beca, 500
jmp mostrarBeca
menorDeEdad:
; Si es menor de edad, verificar el promedio
cmp promedio, 9
jge beca3000m
cmp promedio, 8
jge beca2000m
cmp promedio, 6
jge beca100m
; Si el promedio es menor a 6, enviar una invitación
mov edx, OFFSET mensajeInvitacion
call WriteString
jmp fin
beca3000m:
; Si el promedio es mayor o igual a 9, dar una beca de $3000
mov beca, 3000
jmp mostrarBeca
beca2000m:
; Si el promedio es mayor o igual a 8, dar una beca de $2000
mov beca, 2000
jmp mostrarBeca
beca100m:
; Si el promedio es mayor o igual a 6, dar una beca de $100
mov beca, 100
jmp mostrarBeca
mostrarBeca:
; Mostrar el mensaje de la beca y el monto
mov edx, OFFSET mensajeBeca
call WriteString
mov eax, beca
call WriteDec
jmp fin
fin:
; Salir del programa
call Crlf
exit
mainej5 ENDP
END mainej5