aboutsummaryrefslogtreecommitdiff
path: root/semestr-4/ask/lista5/zad2.asm
diff options
context:
space:
mode:
authorFranciszek Malinka <franciszek.malinka@gmail.com>2021-10-05 21:49:54 +0200
committerFranciszek Malinka <franciszek.malinka@gmail.com>2021-10-05 21:49:54 +0200
commitc5fcf7179a83ef65c86c6a4a390029149e518649 (patch)
treed29ffc5b86a0d257453cedcf87d91a13d8bf3b0d /semestr-4/ask/lista5/zad2.asm
parentf8a88b6a4aba1f66d04711a9330eaba49a50c463 (diff)
Duzy commit ze smieciami
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