From c5fcf7179a83ef65c86c6a4a390029149e518649 Mon Sep 17 00:00:00 2001 From: Franciszek Malinka Date: Tue, 5 Oct 2021 21:49:54 +0200 Subject: Duzy commit ze smieciami --- semestr-4/ask/lista5/zad1.asm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 semestr-4/ask/lista5/zad1.asm (limited to 'semestr-4/ask/lista5/zad1.asm') diff --git a/semestr-4/ask/lista5/zad1.asm b/semestr-4/ask/lista5/zad1.asm new file mode 100644 index 0000000..22aef29 --- /dev/null +++ b/semestr-4/ask/lista5/zad1.asm @@ -0,0 +1,15 @@ +puzzle: testl %esi, %esi + je .L4 ; jesli esi == 0, skocz do L4 + xorl %edx, %edx ; edx := 0 + xorl %eax, %eax ; eax := 0 +.L3: movl %edi, %ecx ; ecx := edi + andl $1, %ecx ; ecx &= 1 + addl %ecx, %eax ; eax += eax + sarq %rdi ; rdi >>= 1 + incl %edx, ; edx++ + cmpl %edx, %esi ; edx - esi != 0? <=> edx != esi + jne .L3 ; jesli tak, skocz do L3 + ret +.L4 movl %esi, %eax ; return esi + ret + -- cgit v1.2.3