Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. .text
  2. .type capitalize ,@function
  3. .global capitalize
  4.  
  5. capitalize:
  6. mov $0, %rax
  7. mov %rdi, %rax
  8. mov $0, %r8 #licznik stringa
  9.  
  10. iteracjaStringa:
  11. mov $0, %r9 #character
  12. movb (%rdi, %r8,1), %r9b
  13. cmp $0, %r9b #przypadek pustego stringa
  14. je end
  15. jmp przepiszSpacjeNaPoczatkuLoop
  16.  
  17. poczatekBezSpacji:
  18. cmp $97, %r9b
  19. jl przepisuj
  20. cmp $122, %r9b
  21. jg przepisuj
  22. sub $32, %r9b
  23. movb %r9b, (%rax, %r8, 1)
  24. inc %r8
  25. mov $0, %r9
  26. movb (%rdi, %r8,1), %r9b
  27. jmp przepisuj
  28.  
  29.  
  30. przepisuj:
  31. cmp $0, %r9b
  32. je end
  33. cmp $33, %r9b #wykrzyknik
  34. je przepiszSpacjePoczatek
  35. cmp $46, %r9b #kropka
  36. je przepiszSpacjePoczatek
  37. cmp $12, %r9b #newLine
  38. je przepiszSpacjePoczatek
  39. cmp $63, %r9b #pytajnik
  40. je przepiszSpacjePoczatek
  41.  
  42. movb %r9b, (%rax, %r8,1)
  43. inc %r8
  44. mov $0, %r9
  45. movb (%rdi, %r8,1), %r9b
  46. jmp przepisuj
  47.  
  48.  
  49.  
  50. przepiszSpacjePoczatek:
  51. movb %r9b, (%rax, %r8,1) #przepisuje kropke, \n, cokolwiek
  52. inc %r8
  53.  
  54. mov $0, %r9
  55. movb (%rdi, %r8,1), %r9b
  56.  
  57. przepiszSpacje:
  58. cmp $32,%r9b
  59. je przepiszSpacjeLoop
  60.  
  61. cmp $0, %r9b #po kropce, wykrzykniku itd koniec stringa
  62. je end
  63.  
  64. cmp $97, %r9b
  65. jl przepisuj
  66. cmp $122, %r9b
  67. jg przepisuj
  68. sub $32, %r9b
  69. movb %r9b, (%rax, %r8, 1)
  70. inc %r8
  71. mov $0, %r9
  72. movb (%rdi, %r8,1), %r9b
  73. jmp przepisuj
  74.  
  75.  
  76. przepiszSpacjeLoop:
  77. movb %r9b, (%rax, %r8,1)
  78. inc %r8
  79. mov $0, %r9
  80. movb (%rdi, %r8,1), %r9b
  81.  
  82. jmp przepiszSpacje
  83.  
  84.  
  85. przepiszSpacjeNaPoczatkuLoop:
  86. cmp $32,%r9b
  87. je przepiszSpacjeNaPoczatkuLoop1
  88. jmp poczatekBezSpacji
  89.  
  90. przepiszSpacjeNaPoczatkuLoop1:
  91. movb %r9b, (%rax, %r8,1)
  92. inc %r8
  93. mov $0, %r9
  94. movb (%rdi, %r8,1), %r9b
  95. jmp przepiszSpacjeNaPoczatkuLoop
  96.  
  97.  
  98.  
  99. end:
  100. movb $0, (%rax, %r8,1)
  101. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement