lab3: dopisane sufiksy w wersji rejestrowej (dla formalności)

This commit is contained in:
Jan Potocki
2019-06-01 20:17:10 +02:00
parent 23a56e4fb5
commit db8fe61fc3
+13 -13
View File
@@ -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