-
Notifications
You must be signed in to change notification settings - Fork 0
/
Factorial.asm
117 lines (91 loc) · 1.81 KB
/
Factorial.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
114
115
116
117
.model small
.stack 64
.data
include 'emu8086.inc'
msj1 db 13,10, '- Factorial -', '$'
msj2 db 13,10, 'Ingrese n1: ', '$'
msj3 db 13,10, 'Ingrese n2: ', '$'
msj4 db 13,10, 'Ingrese n3: ', '$'
Mayor db 13,10, 'El mayor es: ', '$'
n1 db 100 dup('$')
n2 db 100 dup('$')
n3 db 100 dup('$')
salto db 13,10,13,10,'$'
.code
inicio:
mov si,0
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj1
int 21h
call saltodelinea
mov ah,09
mov dx,offset msj2
int 21h
call leer
mov n1,al
call saltodelinea
mov ah,09
mov dx,offset msj3
int 21h
call leer
mov n2,al
call saltodelinea
mov ah,09
mov dx,offset msj4
int 21h
call leer
mov n3,al
call saltodelinea
mov ah,n1
mov al,n2
cmp ah,al
jge compara-1-3
jmp compara-2-3
compara-1-3:
mov al,n3
cmp ah,al
jge mayor1
compara-2-3:
mov ah,n2
mov al,n3
cmp ah,al
jge mayor2
jmp mayor3
mayor1:
call msgMayor
mov dx, offset n1
mov ah, 9
int 21h
jmp fin
mayor2:
call msgMayor
mov dx, offset n2
mov ah, 9
int 21h
jmp fin
mayor3:
call msgMayor
mov dx, offset n3
mov ah, 9
int 21h
jmp fin
msgMayor:
mov dx, offset Mayor
mov ah, 9
int 21h
ret
leer:
mov ah,01h
int 21h
ret
saltodelinea:
mov dx, offset salto
mov ah, 9
int 21h
ret
fin:
mov ax, 4c00h
int 21h
ends