Skip to content

Instantly share code, notes, and snippets.

@abuiles
Created March 9, 2010 02:29
Show Gist options
  • Save abuiles/326084 to your computer and use it in GitHub Desktop.
Save abuiles/326084 to your computer and use it in GitHub Desktop.
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