aboutsummaryrefslogtreecommitdiff
path: root/Semestr 4/ask/lista5/zad2.asm
diff options
context:
space:
mode:
Diffstat (limited to 'Semestr 4/ask/lista5/zad2.asm')
-rw-r--r--Semestr 4/ask/lista5/zad2.asm15
1 files changed, 15 insertions, 0 deletions
diff --git a/Semestr 4/ask/lista5/zad2.asm b/Semestr 4/ask/lista5/zad2.asm
new file mode 100644
index 0000000..7fe4364
--- /dev/null
+++ b/Semestr 4/ask/lista5/zad2.asm
@@ -0,0 +1,15 @@
+puzzle2:
+ movq %rdi, %rax ; rax := rdi
+.L3: movb (%rax), %r9b ; r9b := *rax
+ leaq 1(%rax), %r8 ; r8 := rax + 1
+ movq %rsi, %rdx ; rdx := *rsi
+.L2: movb (%rdx), %cl ; cl := *rdx
+ incq %rdx ; rdx++
+ testb %cl, %cl ; if (cl == 0)
+ je .L4 ; then jump to L4
+ cmpb %cl, %r9b ; if (cl != r9b)
+ jne .L2 ; then jump to L2
+ movq %r8, %rax ; rax := r8
+ jmp .L3 ; jump to L3
+.L4 subq %rdi, %rax ; rax -= rdi
+ ret \ No newline at end of file