Created
March 9, 2010 02:19
-
-
Save abuiles/326080 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
segment .data | |
A: dd 2010 | |
M: dd 0 | |
N: dd 0 | |
a: dd 0 | |
aux: dd 0 | |
b: dd 0 | |
c: dd 0 | |
d: dd 0 | |
domingoDePascua: dd 0 | |
e: dd 0 | |
Segment .text | |
global main | |
main: | |
mov eax,[A] | |
cmp dword [A],1583 | |
jl fin | |
cmp dword [A],1699 | |
jle set1699 | |
cmp dword [A],1799 | |
jle set1799 | |
cmp dword [A],1899 | |
jle set1899 | |
cmp dword [A],2099 | |
jle set2099 | |
cmp dword [A],2199 | |
jle set2199 | |
cmp dword [A],2299 | |
jle set2299 | |
jmp fin | |
set1699: | |
mov dword [N],2 | |
mov dword [M],22 | |
jmp inicializar | |
set1799: | |
mov dword [N],3 | |
mov dword [M],23 | |
jmp inicializar | |
set1899: | |
mov dword [N],4 | |
mov dword [M],23 | |
jmp inicializar | |
set2099: | |
mov dword [N],5 | |
mov dword [M],24 | |
jmp inicializar | |
set2199: | |
mov dword [N],4 | |
mov dword [M],24 | |
jmp inicializar | |
set2299: | |
mov dword [N],0 | |
mov dword [M],25 | |
jmp inicializar | |
inicializar: | |
mov dword eax,[A] | |
mov dword edx,0 | |
mov dword [aux],19 | |
div dword [aux] | |
mov [a],edx | |
mov eax,[A] ;; Verificar si hay necesidad de hacer esto | |
mov dword edx,0 | |
mov dword [aux],4 | |
div dword [aux] | |
mov [b],edx | |
mov eax,[A] ;; misma pregunta | |
mov dword edx,0 | |
mov dword [aux],7 | |
div dword [aux] | |
mov [c],edx | |
mov eax,[a] | |
mov dword edx,0 | |
mov dword [aux],19 | |
mul dword [aux] | |
add eax,[M] | |
mov dword edx,0 | |
mov dword [aux],30 | |
div dword [aux] | |
mov [d],edx | |
mov eax,[b] | |
mov dword edx,0 | |
mov dword [aux],2 | |
mul dword [aux] | |
mov [aux],eax | |
mov eax,[c] | |
mov dword edx,0 | |
mov dword [aux],4 | |
mul dword [aux] | |
add [aux],eax | |
mov eax,[d] | |
mov dword edx,0 | |
mov dword [aux],6 | |
mul dword [aux] | |
add [aux],eax | |
mov eax,[N] | |
add eax,[aux] | |
mov dword edx,0 | |
mov dword [aux],7 | |
div dword [aux] | |
mov [e],eax | |
mov eax,[d] ;;|| | |
add eax,[e] ;;|| | |
sub eax,9 ;;||== Equivale a | |
mov [domingoDePascua],eax ;;|| Domingo de pascua = (d+e) -9 | |
cmp dword [domingoDePascua],26 ;;|| | |
jne not26 ;; Si no es 26 salta | |
mov dword [domingoDePascua],19 ;; de lo contrario haga Domingo de pascua | |
jmp fin ;; igual a 19 de abril. | |
not26: | |
cmp dword [domingoDePascua],25 ;; Este segmento | |
jne fin ;; representa la comparación | |
cmp dword [d],28 ;; domindoDePascua = 25 de abril Y | |
jne fin ;; d = 28 y e = 6 y a>10 | |
cmp dword [e],6 ;; Hacemos corto circuito, si una no | |
jne fin ;; se cumpla podemos dejar de evaluar | |
cmp dword [a],10 | |
jle fin | |
mov dword [domingoDePascua],18 | |
jmp fin | |
fin: | |
mov eax,1 | |
mov ebx,0 | |
int 0x80 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment