--*- coding: utf-8; -*-- Ukeoppgaver 27. oktober og 1. november 2011 Oppgave 1 --------- Her er fem fors?k p? ? oversette enkle tilordninger fra C< til x86-kode. Alle er gale! Finn ut hva som er galt og hva x86-koden skulle ha v?rt. 1a v1 = -17; movl $-17,%eax # -17 movl v1,%eax # v1 = 1b v2 = v1 - 1; movl v1,%eax # v1 movl $1,%eax # 1 movl %eax,%ecx subl %ecx,%eax # Compute - movl %eax,v2 # v2 = 1c v3 = v1*-2; movl v1,%eax # v1 pushl %eax movl $-2,%eax # -2 movl %eax,%ecx popl %eax mull %ecx,%eax # Compute * movl %eax,v3 # v3 = 1d v4 = 2*(v2 + 2); movl $2,%eax # 2 pushl %eax movl v2,%eax # v2 pushl %eax movl $2,%eax # 2 movl %eax,%ecx popl %eax addl %ecx,%eax # Compute + popl %eax imull %ecx,%eax # Compute * movl %eax,v4 # v4 = 1e v5 = (v1*3) / (v2*2); movl v1,%eax # v1 pushl %eax movl $3,%eax # 3 movl %eax,%ecx popl %eax imull %ecx,%eax # Compute * pushl %eax movl v2,%eax # v2 pushl %eax movl $2,%eax # 2 movl %eax,%ecx popl %eax imull %ecx,%eax # Compute * movl %eax,%ecx popl %eax idivl %ecx # Compute / movl %eax,v5 # v5 = Oppgave 2 --------- Skriv ferdig metodene EmptyStatm.genCode og ArithOperator.genCode; sistnevnte klasse er for de aritmetiske operatorene. Oppgave 3 --------- I prekoden finner vi class Expression extends Operand { Hvorfor er Expression en subklasse av Operand og ikke direkte av SyntaxUnit?