0% found this document useful (0 votes)
17 views4 pages

Comp2020 HW6

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut rutrum neque. Aenean laoreet, lacus egestas luctus dictum, orci est condimentum urna, sed accumsan nulla massa vitae purus. Fusce imperdiet egestas nisl, id ullamcorper nisi fringilla at. Praesent mollis massa magna, sit amet ultricies nisl volutpat vel. Pellentesque maximus lacus nec orci tempus, a viverra arcu convallis. Integer eros purus, tempor et rutrum luctus, interdum ut metus. Fusce ligula metus, consequat sed mollis ac,

Uploaded by

Dũng Minh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views4 pages

Comp2020 HW6

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut rutrum neque. Aenean laoreet, lacus egestas luctus dictum, orci est condimentum urna, sed accumsan nulla massa vitae purus. Fusce imperdiet egestas nisl, id ullamcorper nisi fringilla at. Praesent mollis massa magna, sit amet ultricies nisl volutpat vel. Pellentesque maximus lacus nec orci tempus, a viverra arcu convallis. Integer eros purus, tempor et rutrum luctus, interdum ut metus. Fusce ligula metus, consequat sed mollis ac,

Uploaded by

Dũng Minh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

COMP2020 – Homework 6

Thai Minh Dung


2024-05-17

Problem 1:
AddMaxMin

1 # assume a, b, c, d are stored in a0, a1, a2, a3


2 AddMaxMin:
3 #Prologue
4 addi sp, sp, -16
5 sw ra, 12(sp)
6 sw fp, 8(sp)
7 sw s1, 4(sp)
8 sw s2, 0(sp)
9
10 #frame pointer
11 addi fp, sp, 12
12
13 #save a0
14 mv s2, a0 # s2 = a
15
16 #Execution
17 add t0, a2, a3 # tmp = c + d
18 bgt a2, a3, Else # if c > d, jump to Else
19 #Case: c <= d
20 mv a0, t0 # first argument
21 jal ra, Min
22 add s1, s1, a0 # sum = sum + Min(tmp, b)
23 j End
24 Else:
25 mv a0, t0
26 jal ra, Max
27 add s1, s1, a0 # s1 = sum + Max(tmp, b)
28 End:
29 add a0, s1, s2 # a0 = sum + a
30 #Epilogue
31 lw ra, 12(sp)
32 lw fp, 8(sp)
33 lw s1, 4(sp) #sum
34 lw s2, 0(sp) #a
35 addi sp, sp, 16
36
37 j ra #return

1
COMP2020 – Homework 6 Thai Minh Dung

Problem 2:
test

1 #assume a, b, c are in a0, a1, a2


2 test:
3 #Prologue
4 addi sp, sp, -16
5 sw ra, 12(sp)
6 sw fp, 8(sp)
7 sw s1, 4(sp)
8 sw s2, 0(sp)
9
10 #frame pointer
11 addi fp, sp, 12
12 #Execution
13 #tmp = a + b + c - 5;
14 add s1, a0, a1 # s1 = a + b
15 add s1, s1, a2 # s1 = a + b + c
16 addi s1, s1, -5 # s1 = tmp = a + b + c - 5
17
18 mv s2, a1 # s2 = b
19
20 #s = sum(tmp, 1, 2, 3);
21 mv a0, s0 #a0 = tmp
22 addi a1, x0, 1
23 addi a2, x0, 2
24 addi a3, x0, 3
25 jal ra, sum
26 mv t0, a0 #t0 = s = sum(tmp, 1, 2, 3)
27
28 #u = sum(s, tmp, b, 2);
29 mv a0, t0 # a0 = s
30 mv a1, s0 # a1 = tmp
31 mv a2, s2 # a2 = b
32 addi a3, x0, 2 # a3 = 2
33 jal ra, sum
34 mv t1, a0 # t1 = u = sum(s, tmp, b, 2)
35
36 add a0, t1, s2 # a0 = u + b
37 add a0, a0, s1 # a0 = u + b + tmp
38
39 #Epilogue
40 lw ra, 12(sp)
41 lw fp, 8(sp)
42 lw s1, 4(sp)
43 lw s2, 0(sp)
44 addi sp, sp, 16
45
46 j ra #return
47

2
COMP2020 – Homework 6 Thai Minh Dung

Problem 3:
test

1 #Assume a, b, c are stored in a0, a1, a2


2 MyFunction:
3 #Prologue
4 addi sp, sp, -16
5 sw ra, 12(sp)
6 sw fp, 8(sp)
7 sw s1, 4(sp)
8 sw s2, 0(sp)
9 #frame pointer
10 addi fp, sp, 12
11 #Function body
12 slli t0, a1, 3 # t0 = b * 8
13 add s1, a0, t0 # s1 = sum = a + b * 8
14
15 mv s2, a2 # s2 = c
16
17 #creat an array of size 2
18 addi t1, x0, 2
19 slii t1, t1, 2
20
21 addi a2, a0, 5 # a2 = a + 5
22 sw a2, t1, 0 # store a + 5 in the array
23
24 addi t2, a1, -1 # t2 = b - 1
25 sw t2, 4(t1) # store b - 1 in the array
26
27 #prepare arguments for Product
28 lw a0, 0(t1) # a0 = d[0]
29 lw a1, 4(t1) # a1 = d[1]
30 jal ra, Product
31
32 addi a0, a0, t0 # sum = sum + Product(d[0], d[1])
33 addi a0, a0, s2 # sum = sum + c
34
35 #Epilogue
36 lw ra, 12(sp)
37 lw fp, 8(sp)
38 lw s1, 4(sp)
39 lw s2, 0(sp)
40 addi sp, sp, 16
41
42 j ra #return
43

3
COMP2020 – Homework 6 Thai Minh Dung

Problem 4:
Value printed

• *val = 20
• val = 21
• val = 57
• *val = 24

Problem 5:
Static link library vs. Dynamic link library.

Static Link Libraries Dynamic Link Libraries

Performed by Linkers as Performed at run time by


Execution time
the last step of compiling OS

Larger (External programs Smaller (Keep only one


Size are built into the copy of shared library in
executable files) memory)

'.dll' in Windows and


'.lib' in Windows and '.a' in
File extension '.dylib' in MacOS and '.so' in
Unix
Unix.

Memory usage Higher Lower

Updates Require recompilation Independent updates

Deployment Simpler, self - contained Requires library presence

You might also like