Sistemski softver/K1 Oktobar 2020
Pređi na navigaciju
Pređi na pretragu
Postavka
Napisati ekvivalentan program na C programskom jeziku za dati izvorni asemblerski kod. Izvorni asemblerski kod je napisan u skladu sa System V ABI.
.intel_syntax noprefix
.text
.global foo
.type foo, @function
foo:
push rbp
mov rbp, rsp
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rbp+rax*8]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
add rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
pop rbp
ret
Rešenje
typedef struct {
long array[16];
} InputStruct;
long foo(long arg1, long* arg2, InputStruct niz) {
long var = niz.array[arg1];
*arg2 += var;
return var;
}