diff options
Diffstat (limited to 'string.s')
| -rw-r--r-- | string.s | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/string.s b/string.s new file mode 100644 index 0000000..b6bc317 --- /dev/null +++ b/string.s @@ -0,0 +1,21 @@ +.include "lib.s" + +.globl strlen +strlen: + prologue + + backup %rdi, %rcx + + movq 16(%rbp), %rdi + xorq %rax, %rax + movq $-1, %rcx + + repne scasb + + movq $-2, %rax + subq %rcx, %rax + + restore %rdi, %rcx + + leave + ret |
