Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please help me with this as soon as possible thanks?? q2 have from A to D q3 als

ID: 3715053 • Letter: P

Question


Please help me with this
as soon as possible
thanks??
q2 have from A to D
q3 also from A to D

i use this book (
Computer Systems: A Programmer's Perspective
Authors: Randal E. Bryant and David R. O'Hallaron
Publisher: Addison Wesley; 2
nd edition)

(in computer system language)

[Q.2] Convert the following C codes to equivalent IA-64 assembly codes as per the GCC conventions.: a. If else if else int compare (int a, int *b, int c) t if (a > tb) return l; else if (a +b) else return 0; return -1 return 0; else return-1;

Explanation / Answer

//a.

compare:

push rbp

mov rbp, rsp

mov DWORD PTR [rbp-4], edi

mov QWORD PTR [rbp-16], rsi

mov DWORD PTR [rbp-8], edx

mov rax, QWORD PTR [rbp-16]

mov eax, DWORD PTR [rax]

cmp DWORD PTR [rbp-4], eax

jle .L2

mov eax, 1

jmp .L3

.L2:

mov rax, QWORD PTR [rbp-16]

mov eax, DWORD PTR [rax]

cmp DWORD PTR [rbp-4], eax

jge .L4

mov eax, DWORD PTR [rbp-8]

cmp eax, DWORD PTR [rbp-4]

je .L5

mov eax, 0

jmp .L3

.L5:

mov rax, QWORD PTR [rbp-16]

mov eax, DWORD PTR [rax]

cmp DWORD PTR [rbp-8], eax

jle .L6

mov eax, -1

jmp .L3

.L6:

mov eax, 0

jmp .L3

.L4:

mov eax, -1

.L3:

pop rbp

ret

//b.

function:

push rbp

mov rbp, rsp

sub rsp, 16

movsx eax, BYTE PTR [rbp-1]

cmp eax, 115

je .L2

cmp eax, 116

je .L3

jmp .L7

.L2:

movsx eax, BYTE PTR [rbp-1]

mov edi, eax

mov eax, 0

call set

.L3:

movsx eax, BYTE PTR [rbp-1]

mov edi, eax

mov eax, 0

call get

mov BYTE PTR [rbp-2], al

movsx eax, BYTE PTR [rbp-2]

test eax, eax

jne .L5

mov edi, 0

mov eax, 0

call test

jmp .L6

.L5:

mov edi, 1

mov eax, 0

call test

.L6:

nop

.L7:

nop

leave

ret

//c.

func:

push rbp

mov rbp, rsp

push r15

push r14

push r13

push r12

push rbx

sub rsp, 56

mov rcx, rsp

mov r15, rcx

mov DWORD PTR [rbp-52], 1

mov DWORD PTR [rbp-64], 5

mov DWORD PTR [rbp-68], 4

mov ecx, DWORD PTR [rbp-68]

mov ebx, DWORD PTR [rbp-64]

movsx r12, ecx

sub r12, 1

mov QWORD PTR [rbp-80], r12

movsx r12, ecx

mov r13, r12

mov r14d, 0

movsx r12, ecx

lea r14, [0+r12*4]

movsx r12, ebx

sub r12, 1

mov QWORD PTR [rbp-88], r12

movsx r12, ecx

mov r10, r12

mov r11d, 0

movsx r12, ebx

mov rax, r12

mov edx, 0

mov r13, r11

imul r13, rax

mov r12, rdx

imul r12, r10

add r12, r13

mul r10

lea r10, [r12+rdx]

mov rdx, r10

movsx rax, ecx

mov r8, rax

mov r9d, 0

movsx rax, ebx

mov rsi, rax

mov edi, 0

mov rdx, r9

imul rdx, rsi

mov rax, rdi

imul rax, r8

lea r10, [rdx+rax]

mov rax, r8

mul rsi

lea rsi, [r10+rdx]

mov rdx, rsi

movsx rdx, ecx

movsx rax, ebx

imul rax, rdx

lea rdx, [0+rax*4]

mov eax, 16

sub rax, 1

add rax, rdx

mov edi, 16

mov edx, 0

div rdi

imul rax, rax, 16

sub rsp, rax

mov rax, rsp

add rax, 3

shr rax, 2

sal rax, 2

mov QWORD PTR [rbp-96], rax

mov DWORD PTR [rbp-60], 0

jmp .L2

.L5:

mov DWORD PTR [rbp-56], 1

jmp .L3

.L4:

mov rsi, r14

shr rsi, 2

mov rax, QWORD PTR [rbp-96]

mov edx, DWORD PTR [rbp-56]

movsx rcx, edx

mov edx, DWORD PTR [rbp-60]

movsx rdx, edx

imul rdx, rsi

add rdx, rcx

mov eax, DWORD PTR [rax+rdx*4]

mov edx, DWORD PTR [rbp-52]

imul eax, edx

mov DWORD PTR [rbp-52], eax

add DWORD PTR [rbp-56], 1

.L3:

mov eax, DWORD PTR [rbp-56]

cmp eax, DWORD PTR [rbp-68]

jl .L4

add DWORD PTR [rbp-60], 1

.L2:

mov eax, DWORD PTR [rbp-60]

cmp eax, DWORD PTR [rbp-64]

jl .L5

mov rsp, r15

nop

lea rsp, [rbp-40]

pop rbx

pop r12

pop r13

pop r14

pop r15

pop rbp

ret

//d.

factorial:

push rbp

mov rbp, rsp

sub rsp, 16

mov DWORD PTR [rbp-4], edi

cmp DWORD PTR [rbp-4], 1

jne .L2

mov eax, 1

jmp .L3

.L2:

mov eax, DWORD PTR [rbp-4]

sub eax, 1

mov edi, eax

call factorial

imul eax, DWORD PTR [rbp-4]

.L3:

leave

ret

Q3.

No assembly code generating for structures

struct r1{

int array[4];

int sum;

char ch1;

};

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote