diff options
Diffstat (limited to 'semestr-4/ask/lista5/zad2.asm')
-rw-r--r-- | semestr-4/ask/lista5/zad2.asm | 15 |
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 |