Advertisement
gavrilo93

brojac_glavni.S

May 30th, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #program za brojanje reci koje imaju manje od 5 slova i za ispis rezultata
  2. #1.treba da se unese string
  3. #2. petlja za brojanje reci
  4. #3. broj reci konvertovati u string
  5. #4. ispis stringa
  6.  
  7. .section .data
  8.  
  9. unesi_str: .ascii "Unesite string:\n \0"
  10. unesi_str_len =.-unesi_str
  11.  
  12. rezultat_je: .ascii "Rezultat je:\n \0"
  13. rezultat_je_len  =.-rezultat_je
  14.  
  15. string_max = 100
  16. string: .fill string_max, 1, 0
  17. string_len : .long 0
  18.  
  19. string_rez_max = 4
  20. string_rez: .fill string_rez_max, 1, 0
  21.  
  22. rez: .long 0
  23.  
  24. .section .text
  25. .global main
  26. main:
  27.     movl $4, %eax               #ispisi "unesite string"
  28.     movl $1, %ebx
  29.     leal unesi_str, %ecx
  30.     movl $unesi_str_len, %edx
  31.     int $0x80
  32.    
  33.     movl $3, %eax               #uneti string na kome vrsimo brojanje
  34.     movl $0, %ebx
  35.     leal string, %ecx
  36.     movl $string_max, %edx
  37.     int $0x80
  38.    
  39.     testl %eax, %eax
  40.     jz greska
  41.     subl $1, %eax
  42.     movl %eax, string_len
  43.    
  44.     leal string, %ebx
  45.    
  46.     xorl %edx, %edx             #brojac]
  47.     xorl %esi, %esi             #brojac reci sa manje od 5 slova
  48. petlja:
  49.     incl %edx
  50.     movb (%ebx), %cl
  51.     cmpb $0, %cl
  52.     je kraj_provera
  53.     cmpb $' ', %cl
  54.     je ponovo_provera
  55.     incl %ebx
  56.     jmp petlja
  57. ponovo_provera:
  58.     cmpl $6, %edx
  59.     jae ponovo_petlja
  60.     incl %esi
  61. ponovo_petlja:
  62.     incl %ebx
  63.     xorl %edx, %edx
  64.     jmp petlja
  65. kraj_provera:
  66.     cmpl $7, %edx
  67.     jae kraj_petlje
  68.     incl %esi  
  69. kraj_petlje:                    #broj reci je u promenljivoj rez
  70.     movl %esi, rez
  71.    
  72.  
  73.     pushl $string_rez
  74.     pushl %esi
  75.     call konverzija
  76.     addl $8, %esp
  77.    
  78.     movl $4, %eax               #ispis "rezultat je:"
  79.     movl $1, %ebx
  80.     leal rezultat_je, %ecx
  81.     movl $rezultat_je_len, %edx
  82.     int $0x80  
  83.    
  84.     movl $4, %eax
  85.     movl $1, %ebx
  86.     leal string_rez, %ecx
  87.     movl $2, %edx
  88. #print_find:
  89. #   cmpb $0, (%ecx, %edx, 1)
  90. #   je print_kraj
  91. #   incl %edx
  92. #   jmp print_find
  93. #print_kraj:
  94.     int $0x80
  95.  
  96.    
  97. greska:
  98.  
  99. kraj:
  100.     movl $1, %eax
  101.     int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement