Question: f1: subl $97, %edi xorl %eax, %eax cmpb $25, %dil setbe %al ret f2: cmpl %edx, %edi sete %dl xorl %eax, %eax cmpl %esi, %edi

f1:
subl $97, %edi
xorl %eax, %eax
cmpb $25, %dil
setbe %al
ret
f2:
cmpl %edx, %edi
sete %dl
xorl %eax, %eax
cmpl %esi, %edi
sete %al
andl %edx, %eax
ret
f3:
movq %rdi, %rax
notq %rax
shrq $63, %rax
ret
f4:
cmpl $1, %edi
jle .L9
addl $1, %edi
movl $2, %edx
movl $1, %eax
.L8:
imull %edx, %eax
addl $1, %edx
cmpl %edi, %edx
jne .L8
ret
.L9:
movl $1, %eax
ret
f5:
cmpl $1, %esi
jle .L28
movl 4(%rdi), %eax
cmpl %eax, (%rdi)
jg .L30
addq $4, %rdi
subl $1, %esi
xorl %eax, %eax
jmp .L26
.L27:
movl (%rdi), %edx
addq $4, %rdi
cmpl (%rdi), %edx
jg .L30
.L26:
addl $1, %eax
cmpl %esi, %eax
jne .L27
.L28:
movl $1, %eax
ret
.L30:
xorl %eax, %eax
ret
CSC 373 Sections 601, 610 Spring 2018 Homework Assignment 5 Due: as specified on D2L The purpose of this assignment is for you to become better at comprehending x86-64 assembly language. We will not write assembly language programs. Instead, in this assignment you are given 5 functions in x86-64 assembly language. Your task is to "reverse engineer" these 5 functions by writing them in C. Each correct answer is worth 1 point. Your C code does not have to compile into exactly the same.s code that I have given you. Rather, you will be graded on whether or not your C functions properly emulate the assembly language; that is, they both should return the same value provided they are passed the same values as parameters. The assembly language code can be found in the file hw5.s CSC 373 Sections 601, 610 Spring 2018 Homework Assignment 5 Due: as specified on D2L The purpose of this assignment is for you to become better at comprehending x86-64 assembly language. We will not write assembly language programs. Instead, in this assignment you are given 5 functions in x86-64 assembly language. Your task is to "reverse engineer" these 5 functions by writing them in C. Each correct answer is worth 1 point. Your C code does not have to compile into exactly the same.s code that I have given you. Rather, you will be graded on whether or not your C functions properly emulate the assembly language; that is, they both should return the same value provided they are passed the same values as parameters. The assembly language code can be found in the file hw5.s
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
