|
@@ -60,27 +60,27 @@ popq %rdi # Przywrocenie wartosci rejestru rdi
|
60
|
60
|
movq $2, %rcx # Mnozenie 2. wyrazu przez 2
|
61
|
61
|
mulq %rcx
|
62
|
62
|
|
63
|
|
-sub %rax, %rbx # Obliczenie roznicy
|
|
63
|
+subq %rax, %rbx # Obliczenie roznicy
|
64
|
64
|
|
65
|
65
|
# Zwrocenie wyniku obliczen (przez rejestr rax, zgodnie z konwencja) i wyjscie
|
66
|
|
-mov %rbx, %rax
|
|
66
|
+movq %rbx, %rax
|
67
|
67
|
jmp fun_end
|
68
|
68
|
|
69
|
69
|
# Zwrocenie wynikow dla poczatkowych wyrazow (przez rejestr rax)
|
70
|
70
|
x0:
|
71
|
|
-mov $2, %rax
|
|
71
|
+movq $2, %rax
|
72
|
72
|
jmp fun_end
|
73
|
73
|
|
74
|
74
|
x1:
|
75
|
|
-mov $1, %rax
|
|
75
|
+movq $1, %rax
|
76
|
76
|
jmp fun_end
|
77
|
77
|
|
78
|
78
|
x2:
|
79
|
|
-mov $3, %rax
|
|
79
|
+movq $3, %rax
|
80
|
80
|
|
81
|
81
|
fun_end:
|
82
|
|
-pop %rbx # Przywrocenie wartosci rejestru rbx
|
83
|
|
-pop %rbp # Wyjscie z funkcji
|
|
82
|
+popq %rbx # Przywrocenie wartosci rejestru rbx
|
|
83
|
+popq %rbp # Wyjscie z funkcji
|
84
|
84
|
ret
|
85
|
85
|
|
86
|
86
|
main:
|
|
@@ -89,13 +89,13 @@ call fun # Wywolanie funkcji rekurencyjnej
|
89
|
89
|
movq %rax, num # Zapisanie w pamieci wyniku zwroconego przez rax
|
90
|
90
|
|
91
|
91
|
# Wypisanie wyniku
|
92
|
|
-mov $SYSWRITE, %rax
|
93
|
|
-mov $STDOUT, %rdi
|
94
|
|
-mov $num, %rsi
|
95
|
|
-mov $n_size, %rdx
|
|
92
|
+movq $SYSWRITE, %rax
|
|
93
|
+movq $STDOUT, %rdi
|
|
94
|
+movq $num, %rsi
|
|
95
|
+movq $n_size, %rdx
|
96
|
96
|
syscall
|
97
|
97
|
|
98
|
98
|
# Koniec programu
|
99
|
|
-mov $SYSEXIT, %rax
|
100
|
|
-mov $0, %rdi
|
|
99
|
+movq $SYSEXIT, %rax
|
|
100
|
+movq $0, %rdi
|
101
|
101
|
syscall
|