Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .type capitalize, @function
- .global capitalize
- .text
- # rax
- # rdi - tablica znakow
- # rsi -
- # rdx -
- # rcx -
- # r8 -
- # r9 -
- # r10 -
- # r11 -
- and $0, %r9
- and $0, %r8
- and $0, %rax
- and $0, %r10
- and $0, %rsi
- and $0, %rdx
- and $0, %rcx
- capitalize:
- mov $-1, %r8
- mov %rdi, %rax
- loop:
- inc %r8
- and $0, %r9
- cmpb $0, (%rax, %r8, 1)
- je end
- movb (%rax, %r8, 1), %r9b
- cmpb $0, %r8b
- je firstLetter
- and $0, %r10
- cmpb $'!', %r9b
- je capital
- cmpb $'.', %r9b
- je capital
- cmpb $'?', %r9b
- je capital
- cmpb $'\n', %r9b
- je capital
- jmp loop
- firstLetter:
- cmpb $97, %r9b
- jnge loop
- cmpb $122, %r9b
- jnle loop
- and $0, %r10
- mov (%rax, %r8, 1), %r10b
- sub $32, %r9
- mov %r9b, (%rax, %r8, 1)
- jmp loop
- capital:
- and $0, %r10
- mov %r8, %r10
- inc %r10
- checkSpace:
- cmpb $' ', (%rax, %r10, 1)
- je skipSpace
- cmpb $'\n', (%rax, %r10, 1)
- je skipSpace
- and $0, %r9
- movb (%rax, %r10, 1), %r9b
- cmpb $97, %r9b
- jnge loop
- cmpb $122, %r9b
- jnle loop
- and $0, %r9
- mov (%rax, %r10, 1), %r9b
- subb $32, %r9b
- mov %r9b, (%rax, %r10, 1)
- and $0, %r9
- and $0, %r10
- jmp loop
- skipSpace:
- inc %r10
- jmp checkSpace
- end:
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement