Question: Please translate this ARM64 Assembly Code .text .global fct1, fct2, fct3, main fct1: sub sp, sp,#48 str x30, [sp] str w0, [sp,28] str w1, [sp,24]
Please translate this ARM64 Assembly Code
.text
.global fct1, fct2, fct3, main
fct1: sub sp, sp,#48
str x30, [sp]
str w0, [sp,28]
str w1, [sp,24]
ldr w0, [sp,28]
bl fct2
str w0, [sp,44]
ldr w0, [sp,24]
bl fct2
str w0, [sp,40]
ldr w1, [sp,44]
ldr w0, [sp,40]
add w0, w1, w0
str w0, [sp,36]
bl fct3
str w0, [sp,32]
ldr x30, [sp]
add sp, sp,#48
ret
fct2: sub sp, sp,#16
str w0, [sp,12]
ldr w0, [sp,12]
cmp w0,0
bge L2
ldr w0, [sp,12]
neg w0, w0
str w0, [sp,12]
L2:
ldr w0, [sp,12]
add sp, sp,16
ret
fct3: sub sp, sp,#32
str w0, [sp,12]
mov w0,1
str w0, [sp,28]
str wzr, [sp,24]
ldr w1, [sp,12]
L5:
cmp w1, w0
blt L6
ldr w2, [sp,24]
ldr w0, [sp,28]
add w0, w2, w0
str w0, [sp,24]
ldr w0, [sp,28]
add w0, w0,1
str w0, [sp,28]
b L5
L6:
ldr w0, [sp,24]
add sp, sp,32
ret
main: sub sp, sp,#32
str x30, [sp]
mov w0,-30
str w0, [sp,28]
mov w0,70
str w0, [sp,24]
ldr w1, [sp,24]
ldr w0, [sp,28]
bl fct1
str w0, [sp,20]
mov w0,0
ldr x30, [sp]
add sp, sp,#32
ret
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
