Advertisement
Guest User

test

a guest
Mar 20th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .section .data
  2. poruka1: .ascii "Unesite proizvoljnu recenicu: \0"
  3. por1_len=.-poruka1
  4.  
  5. MAX=100
  6. prijem: .fill MAX,1,42
  7.  
  8. duzina: .long 0
  9.  
  10. brojac: .long 0
  11.  
  12. poruka2: .ascii "Broj ponavljanja reci 'test' u unetoj recenici je: \0"
  13. por2_len=.-poruka2
  14.  
  15.  
  16. .section .text
  17. .globl main
  18.  
  19.  
  20. main:
  21.  
  22.     movl $4, %eax                           #ispis na ekran
  23.     movl $1, %ebx
  24.     leal poruka1, %ecx
  25.     movl $por1_len, %edx
  26.     int $0x80
  27.    
  28.     movl $3,%eax                            #prijem stringa sa tastature
  29.     movl $0,%ebx
  30.     leal prijem,%ecx
  31.     movl $MAX,%edx
  32.     int $0x80
  33.    
  34.     movl %eax,duzina
  35.    
  36.     leal prijem,%esi                        #pokazivac na nas string koji smo primili
  37.    
  38. #prvo sve prebaciti u velika slova zbog lakse provere posle
  39. #ukoliko je space,zanemariti i ici do sledeceg karaktera
  40.  
  41. upcase:                                     #prebacujemo sve u velika
  42.    cmpb $'a',(%esi)
  43.    jb nijeMalo
  44.    cmpb $'z',(%esi)
  45.    ja nijeMalo
  46.    
  47.    subb $32,(%esi)                          #ako je u pitanju malo slovo prebacimo ga u veliko
  48.        
  49. nijeMalo:
  50.     incl %esi
  51.                                            #provera da li smo dosli do kraja stringa
  52.     movl duzina,%edx
  53.     addl $prijem,%edx                       #adresa poslednjeg elementa
  54.     cmpl %edx,%esi
  55.     jl upcase
  56.  
  57.     leal prijem,%esi
  58.     leal prijem,%edi                        #pomocni pokazivac
  59. poredjenje:
  60.     cmpb $'T',(%esi)                        
  61.     jne nije
  62.    
  63.     movl %esi,%edi                          #pomocni pokazivac
  64.    
  65.     incl %edi
  66.     cmpb $'E',(%edi)
  67.     jne nije
  68.    
  69.     incl %edi
  70.     cmpb $'S',(%edi)
  71.     jne nije
  72.    
  73.     incl %edi
  74.     cmpb $'T',(%edi)
  75.     jne nije
  76.    
  77. jeste:
  78.     incl brojac
  79.     movl %edi,%esi
  80.    
  81. nije:
  82.     incl %esi    
  83.  
  84. proveraKraja:
  85.     movl duzina,%edx
  86.     addl $prijem,%edx
  87.     cmpl %edx,%esi
  88.     jl poredjenje
  89.  
  90.     #ISPISIVANJE NA EKRAN KOLIKO SE PUTA PONOVILA REC TEST U PROGRAMU
  91.     movl $4,%eax
  92.     movl $1,%ebx
  93.     leal poruka2,%ecx
  94.     movl $por2_len,%edx
  95.     int $0x80
  96.    
  97.     addl $48,brojac                         #kako bi se na ekranu ispisao lepo stringovnobroj
  98.    
  99.     movl $4,%eax
  100.     movl $1,%ebx
  101.     leal brojac,%ecx
  102.     movl $1,%edx
  103.     int $0x80
  104.    
  105.        
  106.    
  107.    
  108. kraj:
  109.     movl $1,%eax
  110.     movl $0,%ebx
  111.     int $0x80
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. #Korisnik unese recenicu,treba proveriti koliko ima reci 'TEST' u prosledjenoj recenici i to ispisati na ekran.
  119.  
  120. #Primer: Testiraju test t12 i tako .
  121. #Ocekivani izlaz:
  122. #U unetoj recenici reci 'test' ima : 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement