Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. .type capitalize, @function
  2. .global capitalize
  3. .text
  4.  
  5.  
  6. # rax
  7.  
  8. # rdi - tablica znakow
  9. # rsi -
  10. # rdx -
  11. # rcx -
  12. # r8 -
  13. # r9 -
  14. # r10 -
  15. # r11 -
  16.  
  17. and $0, %r9
  18. and $0, %r8
  19. and $0, %rax
  20. and $0, %r10
  21. and $0, %rsi
  22. and $0, %rdx
  23. and $0, %rcx
  24.  
  25. capitalize:
  26. mov $-1, %r8
  27. mov %rdi, %rax
  28.  
  29. loop:
  30. inc %r8
  31. and $0, %r9
  32. cmpb $0, (%rax, %r8, 1)
  33. je end
  34.  
  35. movb (%rax, %r8, 1), %r9b
  36.  
  37. cmpb $0, %r8b
  38. je firstLetter
  39.  
  40. and $0, %r10
  41. cmpb $'!', %r9b
  42. je capital
  43.  
  44. cmpb $'.', %r9b
  45. je capital
  46.  
  47. cmpb $'?', %r9b
  48. je capital
  49.  
  50. cmpb $'\n', %r9b
  51. je capital
  52.  
  53. jmp loop
  54.  
  55. firstLetter:
  56. cmpb $97, %r9b
  57. jnge loop
  58.  
  59. cmpb $122, %r9b
  60. jnle loop
  61.  
  62. and $0, %r10
  63. mov (%rax, %r8, 1), %r10b
  64. sub $32, %r9
  65.  
  66. mov %r9b, (%rax, %r8, 1)
  67. jmp loop
  68.  
  69. capital:
  70. and $0, %r10
  71.  
  72. mov %r8, %r10
  73. inc %r10
  74.  
  75. checkSpace:
  76. cmpb $' ', (%rax, %r10, 1)
  77. je skipSpace
  78.  
  79. cmpb $'\n', (%rax, %r10, 1)
  80. je skipSpace
  81.  
  82. and $0, %r9
  83. movb (%rax, %r10, 1), %r9b
  84.  
  85. cmpb $97, %r9b
  86. jnge loop
  87.  
  88. cmpb $122, %r9b
  89. jnle loop
  90.  
  91. and $0, %r9
  92. mov (%rax, %r10, 1), %r9b
  93.  
  94. subb $32, %r9b
  95.  
  96. mov %r9b, (%rax, %r10, 1)
  97.  
  98. and $0, %r9
  99. and $0, %r10
  100. jmp loop
  101.  
  102. skipSpace:
  103. inc %r10
  104. jmp checkSpace
  105.  
  106. end:
  107. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement