Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

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.

p5:

.LFB18:

.cfi_startproc

subl $1, %esi

testl %esi, %esi

jle .L21

movslq %esi, %rax

xorl %edx, %edx

leaq (%rdi,%rax,4), %rax

.p2align 4,,10

.p2align 3

.L24:

movl (%rdi), %ecx

movl (%rax), %r8d

addl $1, %edx

subl $1, %esi

addq $4, %rdi

subq $4, %rax

movl %r8d, -4(%rdi)

movl %ecx, 4(%rax)

cmpl %esi, %edx

jl .L24

.L21:

rep ret

.cfi_endproc

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Building Database Driven Catalogs

Authors: Sherif Danish

1st Edition

0070153078, 978-0070153073

More Books

Students also viewed these Databases questions