Advertisement
Guest User

test2

a guest
Mar 20th, 2019
55
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.  
  58.     leal prijem,%esi
  59.     leal prijem,%edi                        #pomocni pokazivac
  60. poredjenje:
  61.     cmpb $'T',(%esi)                        
  62.     jne nije
  63.    
  64.     movl %esi,%edi                          #pomocni pokazivac
  65. slovoE:
  66.     incl %edi
  67.     cmpb $'E',(%edi)
  68.     jne nijeE
  69. slovoS:
  70.     incl %edi
  71.     cmpb $'S',(%edi)
  72.     jne nijeS
  73. slovoT:
  74.     incl %edi
  75.     cmpb $'T',(%edi)
  76.     jne nijeT
  77.    
  78. jeste:
  79.     incl brojac
  80.     movl %edi,%esi
  81.    
  82. nije:
  83.     incl %esi
  84.     jmp proveraKraja  
  85.    #incl %edi
  86.    
  87.    
  88. nijeE:
  89.     cmpb $' ',(%edi)                        #u slucaju da je spejs njega zelimo zanemariti
  90.     je slovoE
  91.     jmp proveraKraja
  92. nijeS:
  93.     cmpb $' ',(%edi)
  94.     je slovoS
  95.     jmp proveraKraja
  96. nijeT:
  97.     cmpb $' ',(%edi)
  98.     je slovoT
  99.     jmp proveraKraja
  100.    
  101. proveraKraja:
  102.     movl duzina,%edx
  103.     addl $prijem,%edx
  104.     cmpl %edx,%esi
  105.     jl poredjenje
  106.  
  107.     #ISPISIVANJE NA EKRAN KOLIKO SE PUTA PONOVILA REC TEST U PROGRAMU
  108.     movl $4,%eax
  109.     movl $1,%ebx
  110.     leal poruka2,%ecx
  111.     movl $por2_len,%edx
  112.     int $0x80
  113.    
  114.     addl $48,brojac                         #kako bi se na ekranu ispisao lepo stringovnobroj
  115.    
  116.     movl $4,%eax
  117.     movl $1,%ebx
  118.     leal brojac,%ecx
  119.     movl $1,%edx
  120.     int $0x80
  121.    
  122.        
  123. kraj:
  124.     movl $1,%eax
  125.     movl $0,%ebx
  126.     int $0x80
  127.  
  128. #Korisnik unese recenicu,treba proveriti koliko ima reci 'TEST' u prosledjenoj recenici i to ispisati na ekran.
  129.  
  130. #Primer: Testiraju test t12 i tako .
  131. #Ocekivani izlaz:
  132. #U unetoj recenici reci 'test' ima : 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement