Question
Starting with the Count.j example, implement Butcher's Easter Algorithm to calculate and print the date of Easter for the next 10 years in JVM assembly
Starting with the Count.j example, implement Butcher's Easter Algorithm to calculate and print the date of Easter for the next 10 years in JVM assembly language.
THIS NEEDS TO BE ASSEMBLED WITH JASMIN. its a .jfile not a .java file NOT JASMINE, IF YOU DON'T KNOW DON'T ANSWER IVE POSTED TOO MANY TIMES PLEASE HELP! Also a simple program as Iam just learning Jasmin assembly language
Butcher's Easter Algorithm
Butcher's Algorithm to calculate Easter day for any year in the Gregorian Calendar.
All values and calculations are integer only.
For a given year:
a=year%19 b=year/100 c=year%100 d=b/4 e=b%4 f=(b+8)/25 g=(b-f+1)/3 h=(19*a+b-d-g+15)%30 i=c/4 k=c%4 x=(32+2*e+2*i-h-k)%7 m=(a+11*h+22*x)/451 Easter Month =(h+x-7*m+114)/31 [3=March, 4=April] p=(h+x-7*m+114)%31 Easter Date=p+1 (date in Easter Month
.....................COUNT.J...........................................................
.class public examples/Count .super java/lang/Object
; ; standard initializer .method public
.method public static main([Ljava/lang/String;)V ; set limits used by this method .limit locals 4 .limit stack 3
; setup local variables:
; 1 - the PrintStream object held in java.lang.System.out getstatic java/lang/System/out Ljava/io/PrintStream; astore_1
; 2 - the integer 10 - the counter used in the loop bipush 10 istore_2
; now loop 10 times printing out a number
Loop:
; compute 10 -
; decrement the counter and loop iinc 2 -1 iload_2 ifne Loop
; done return
.end method
...........................this is my code that won't work.........................................
.class public example/Easterdeb
.super java/lang/Object
;
; standard initializer
.method public
aload_0
invokenonvirtual java/lang/Object/
return
.end method
.method public static main([Ljava/lang/String;)V
; set limits used by this method
.limit locals 20
.limit stack 6
; setup local variables:
; 1 - the PrintStream object held in java.lang.System.out
getstatic java/lang/System/out Ljava/io/PrintStream;
astore_1
; 2 - the integer 10 - the counter used in the loop
sipush 2017
bipush 10
istore_2 ;count is in 2
istore 4 ;year is in 4
; now loop 10 times printing out a number
Loop:
; compute 10 -
iload 4 ;year
bipush 19
irem
istore 5 ; a is in 5
iload 4
bipush 100
idiv
istore 6 ; b is in 6
iload 4
bipush 100
irem
istore 7 ; c is in 7
iload 6
bipush 4
idiv
istore 8 ; d is in 8
iload 6
bipush 4
irem
istore 9 ; e is in 9
iload 6
bipush 8
iadd
bipush 25
idiv
istore 10 ; f is in 10
iload 6
iload 10
isub
bipush 1
iadd
bipush 3
idiv
istore 11 ; g is in 11
bipush 19
iload 5
imul
iload 6
iadd
iload 8
isub
iload 11
isub
bipush 15
iadd
bipush 30
irem
istore 12 ; h is in 12
iload 7
bipush 4
idiv
istore 13 ; i is in 13
iload 7
bipush 4
irem
istore 14 ; k is in 14
bipush 32
bipush 2
iload 9 ;load e
imul
iadd
bipush 2
iload 13 ; load i
imul
iadd
iload 12 ; load h
isub
iload 14 ; load k
isub
bipush 7
irem
istore 15 ; x is in 15
iload 5
bipush 11
iload 12
imul
iadd
bipush 22
iload 15
imul
iadd
sipush 451
idiv
istore 16 ; m is in 16
iload 12
iload 15
bipush 7
iload 16
imul
isub
iadd
bipush 114
iadd
bipush 31
idiv
istore 17 ; easter month is in 17
iload 12
iload 15
bipush 7
iload 16
imul
isub
iadd
bipush 114
iadd
bipush 31
irem
istore 18 ; p is in 18
iload 18
bipush 1
iadd
istore 19 ; day
iload 17
bipush 4
isub
ifeq Print_April
aload_1
ldc "March"
goto PRINT_IT
Print_April:
aload_1
ldc "April"
PRINT_IT:
invokestatic java/lang/String/valueOf(I)Ljava/lang/String;
astore_3
; ... and print it
aload_1 ; push the PrintStream object
aload_3 ; push the string we just created - then ...
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
; decrement the counter and loop
iinc 4 1 ;increment year
iinc 2 -1
iload_2
ifne Loop
; done
return
.end method
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started