uP:Ciąg
Z Wiki Rafał (ert16) Trójniak
Temat zadania
Napisać program testujący (w C) oraz funkcję (w ASM) wyznaczającą metodą iteracyjną wartość k-tego wyrazu (k>=0) ciągu danego wzorem
- a_k+2=a_k - a_k+1
- a_0=0
- a_1=1.
Deklaracja funkcji:
int compute_value(int k);
Program testujący powinien wypisać 10 pierwszych wyrazów ciągu.
asm.s
.text .type compute_value, @function .global compute_value #int compute_value(int k); compute_value: pushl %ebp movl %esp, %ebp xor %eax, %eax movl 8(%ebp), %eax cmp $1, %eax jbe finish # a_k=a_k-2 - a_k-1 dec %eax pushl %eax call compute_value popl %ebx dec %ebx pushl %eax pushl %ebx call compute_value addl $4,%esp popl %ebx sub %ebx, %eax finish: movl %ebp, %esp popl %ebp ret
main.c
#include <stdio.h> int compute_value(int k); int main() { unsigned l, w; for(l=0;l<10;l++){ w=compute_value(l); printf("f(%d) = %d\n", l, w); } return 0; }