lab3: dopisane sufiksy w wersji rejestrowej (dla formalności)
This commit is contained in:
+13
-13
@@ -60,27 +60,27 @@ popq %rdi # Przywrocenie wartosci rejestru rdi
|
|||||||
movq $2, %rcx # Mnozenie 2. wyrazu przez 2
|
movq $2, %rcx # Mnozenie 2. wyrazu przez 2
|
||||||
mulq %rcx
|
mulq %rcx
|
||||||
|
|
||||||
sub %rax, %rbx # Obliczenie roznicy
|
subq %rax, %rbx # Obliczenie roznicy
|
||||||
|
|
||||||
# Zwrocenie wyniku obliczen (przez rejestr rax, zgodnie z konwencja) i wyjscie
|
# Zwrocenie wyniku obliczen (przez rejestr rax, zgodnie z konwencja) i wyjscie
|
||||||
mov %rbx, %rax
|
movq %rbx, %rax
|
||||||
jmp fun_end
|
jmp fun_end
|
||||||
|
|
||||||
# Zwrocenie wynikow dla poczatkowych wyrazow (przez rejestr rax)
|
# Zwrocenie wynikow dla poczatkowych wyrazow (przez rejestr rax)
|
||||||
x0:
|
x0:
|
||||||
mov $2, %rax
|
movq $2, %rax
|
||||||
jmp fun_end
|
jmp fun_end
|
||||||
|
|
||||||
x1:
|
x1:
|
||||||
mov $1, %rax
|
movq $1, %rax
|
||||||
jmp fun_end
|
jmp fun_end
|
||||||
|
|
||||||
x2:
|
x2:
|
||||||
mov $3, %rax
|
movq $3, %rax
|
||||||
|
|
||||||
fun_end:
|
fun_end:
|
||||||
pop %rbx # Przywrocenie wartosci rejestru rbx
|
popq %rbx # Przywrocenie wartosci rejestru rbx
|
||||||
pop %rbp # Wyjscie z funkcji
|
popq %rbp # Wyjscie z funkcji
|
||||||
ret
|
ret
|
||||||
|
|
||||||
main:
|
main:
|
||||||
@@ -89,13 +89,13 @@ call fun # Wywolanie funkcji rekurencyjnej
|
|||||||
movq %rax, num # Zapisanie w pamieci wyniku zwroconego przez rax
|
movq %rax, num # Zapisanie w pamieci wyniku zwroconego przez rax
|
||||||
|
|
||||||
# Wypisanie wyniku
|
# Wypisanie wyniku
|
||||||
mov $SYSWRITE, %rax
|
movq $SYSWRITE, %rax
|
||||||
mov $STDOUT, %rdi
|
movq $STDOUT, %rdi
|
||||||
mov $num, %rsi
|
movq $num, %rsi
|
||||||
mov $n_size, %rdx
|
movq $n_size, %rdx
|
||||||
syscall
|
syscall
|
||||||
|
|
||||||
# Koniec programu
|
# Koniec programu
|
||||||
mov $SYSEXIT, %rax
|
movq $SYSEXIT, %rax
|
||||||
mov $0, %rdi
|
movq $0, %rdi
|
||||||
syscall
|
syscall
|
||||||
|
|||||||
Reference in New Issue
Block a user