K1SR

palindrom

Apr 8th, 2022 (edited)
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.52 KB | None | 0 0
  1. #palindrom
  2. #vnsdnvs
  3.  
  4. .section .data
  5. poruka: .ascii "Unesite string:\0"
  6. poruka_len = . - poruka
  7. nijep: .ascii "String nije palindrom.\n\0"
  8. nijep_len = . - nijep
  9. jestep: .ascii "String je palindrom.\n\0"
  10. jestep_len = . - jestep
  11. unos: .fill 50,1,42
  12. unos_len: .long 51
  13. brojac: .long 0
  14. .section .text
  15. .globl main
  16.  
  17. main:
  18. #upis
  19. movl $4, %eax
  20. movl $1, %ebx
  21. movl $poruka, %ecx
  22. movl $poruka_len, %edx
  23. int $0x80
  24.  
  25. movl $3, %eax
  26. movl $0, %ebx
  27. movl $unos, %ecx
  28. movl unos_len, %edx
  29. int $0x80
  30. movl %eax, unos_len
  31.  
  32. #movl unos, %eax
  33. movl $0, %esi
  34.  
  35. slovo_zameni:
  36. movb unos(,%esi,1), %al
  37. cmpb $10, %al
  38. je pred_izbaci
  39. cmpb $'A' , %al
  40. jb dalje_slovo
  41. cmpb $'Z' , %al
  42. jbe menjaj
  43. incl %esi
  44. jmp slovo_zameni
  45.  
  46. #AnA Voli MilOvana
  47.  
  48. menjaj:
  49. addl $32, unos(,%esi,1)
  50. incl %esi
  51. jmp slovo_zameni
  52. dalje_slovo:
  53. incl %esi
  54. jmp slovo_zameni
  55. #####################################
  56. pred_izbaci:
  57. movl $0, %esi
  58. izbaci:
  59. movb unos(,%esi,1), %al
  60. cmpb $10, %al
  61. je pred_petlja
  62. cmpb $32 , %al
  63. je smena1
  64. incl %esi
  65. jmp izbaci
  66. smena1:
  67. incl brojac
  68. movl %esi, %edi
  69. smena:
  70. movb unos(,%edi,1), %al
  71. cmpb $10, %al
  72. je dalje
  73. movb unos+1(,%edi,1), %al
  74. movb %al, unos(,%edi,1)
  75. incl %edi
  76. jmp smena
  77. dalje:
  78. jmp izbaci
  79. ###################################################
  80. pred_petlja:
  81. movl $0, %esi
  82. movl brojac, %ecx
  83. subl %ecx, unos_len
  84. movl unos_len, %edi
  85. petlja :
  86. cmpl %esi, %edi
  87. jbe ispis2
  88. movb unos(,%esi,1), %al
  89. movb unos-2(,%edi,1), %bl
  90. cmpb %al, %bl
  91. jne ispis
  92. je prebaci
  93.  
  94.  
  95. prebaci:
  96. incl %esi
  97. decl %edi
  98. jmp petlja
  99.  
  100. ispis2:
  101.  
  102. movl $4, %eax
  103. movl $1, %ebx
  104. movl $jestep, %ecx
  105. movl $jestep_len, %edx
  106. int $0x80
  107. jmp kraj
  108. ispis:
  109. #prezime
  110. movl $4, %eax
  111. movl $1, %ebx
  112. movl $nijep, %ecx
  113. movl $nijep_len, %edx
  114. int $0x80
  115.  
  116. #####
  117.  
  118.  
  119. kraj:
  120. movl $1, %eax
  121. movl $0, %ebx
  122. int $0x80
  123.  
  124.  
  125.  
  126.  
  127.  
  128. --------------------------------------------------------------------------------------------------------------
  129.  
  130. #nizovi
  131.  
  132. .section .data
  133. BREL = 10
  134. niz1: .long 1,2,3,4,5,6,7,8,9,10
  135. niz2: .long 1,2,3,4,5,6,7,8,9,10
  136. nizRez: .fill BREL, 4
  137. nisuSviPozitivni: .ascii "Nisu svi brojevi rezultujuceg niza pozitivni.\n\0"
  138. nisuSviPozitivni_len=.-nisuSviPozitivni
  139. sviPozitivni: .ascii "Svi brojevi rezultujuceg niza su pozitivni.\n\0"
  140. sviPozitivni_len=.-sviPozitivni
  141.  
  142. .section .text
  143. .globl main
  144. main:
  145. movl $0, %esi
  146.  
  147. dva:
  148. cmpl $10, %esi
  149. je pred_proveri
  150. movl niz1(,%esi,4), %eax
  151. addl niz2(,%esi,4), %eax
  152. movl %eax, nizRez(,%esi,4)
  153. incl %esi
  154.  
  155. cmpl $10, %esi
  156. je pred_proveri
  157. movl niz1(,%esi,4), %eax
  158. addl niz2(,%esi,4), %eax
  159. movl %eax, nizRez(,%esi,4)
  160. incl %esi
  161. treci:
  162. cmpl $10, %esi
  163. je pred_proveri
  164. movl niz1(,%esi,4), %eax
  165. subl niz2(,%esi,4), %eax
  166. movl %eax, nizRez(,%esi,4)
  167. incl %esi
  168. jmp dva
  169. pred_proveri:
  170. movl $0, %esi
  171. proveri:
  172. cmpl $10,%esi
  173. je ispis1
  174. cmpl $0, nizRez(,%esi,4)
  175. jle ispis2
  176.  
  177. incl %esi
  178. jmp proveri
  179. ispis1:
  180. movl $4, %eax
  181. movl $1, %ebx
  182. movl $sviPozitivni, %ecx
  183. movl $sviPozitivni_len, %edx
  184. int $0x80
  185. jmp kraj
  186. ispis2:
  187. movl $4, %eax
  188. movl $1, %ebx
  189. movl $nisuSviPozitivni, %ecx
  190. movl $nisuSviPozitivni_len, %edx
  191. int $0x80
  192. kraj:
  193. movl $1, %eax
  194. movl $0, %ebx
  195. int $0x80
  196.  
  197.  
  198. ------------------------------------------------------------------------------------------------------------
  199.  
  200.  
  201.  
  202.  
  203. #slovo sa najvecom vrednoscu u ascii tabeli
  204. #vnsdnvs
  205.  
  206. .section .data
  207. ulaz: .ascii "Unesite string: \0"
  208. ulaz_len= . - ulaz
  209. izlaz1: .ascii "U unetom strigu najveci kod ima slovo: \0"
  210. izlaz1_len= . - izlaz1
  211. slovo: .ascii "1"
  212. izlaz2: .ascii "U unetom stringu nema slova!\n\0"
  213. izlaz2_len= . - izlaz2
  214. str1: .fill 51,1,0
  215. str1_max: .long 51
  216. brojac: .long 0
  217.  
  218. .section .text
  219. .globl main
  220. main:
  221. movl $4, %eax
  222. movl $1, %ebx
  223. movl $ulaz, %ecx
  224. movl $ulaz_len, %edx
  225. int $0x80
  226.  
  227. movl $3, %eax
  228. movl $0, %ebx
  229. movl $str1, %ecx
  230. movl str1_max, %edx
  231. int $0x80
  232. movl %eax, str1_max
  233. movl $0, %esi
  234. movb $0, %cl
  235.  
  236.  
  237. petlja:
  238. cmpl $'\n' ,str1(,%esi,1)
  239. je ispitaj
  240. movb str1(,%esi,1), %al
  241. cmpb $'A', %al
  242. jb dalje
  243. cmpb $'Z', %al
  244. jbe poredi
  245. cmpb $'a', %al
  246. jb dalje
  247. cmpb $'z', %al
  248. jbe poredi
  249. incl %esi
  250. jmp petlja
  251.  
  252. poredi:
  253. movb %al, %bl
  254. cmpb %cl, %bl
  255. ja zameni
  256. incl brojac
  257. incl %esi
  258. jmp petlja
  259. zameni:
  260. movb %bl, %cl
  261. incl brojac
  262. incl %esi
  263. jmp petlja
  264. dalje:
  265. incl %esi
  266. jmp petlja
  267.  
  268. ispitaj:
  269. movb %cl, slovo
  270. cmpl $0, brojac
  271. jne ispis2
  272. ispis1:
  273. movl $4, %eax
  274. movl $1, %ebx
  275. movl $izlaz2, %ecx
  276. movl $izlaz2_len, %edx
  277. int $0x80
  278. jmp kraj
  279. ispis2:
  280. movl $4, %eax
  281. movl $1, %ebx
  282. movl $izlaz1, %ecx
  283. movl $izlaz1_len+1, %edx
  284. int $0x80
  285.  
  286.  
  287. kraj:
  288. movl $1, %eax
  289. movl $0, %ebx
  290. int $0x80
  291.  
  292.  
  293. --------------------------------------------------------------------------------------------------------------
  294.  
  295.  
  296.  
  297. #prebroj samoglasnike
  298.  
  299.  
  300.  
  301. .section .data
  302. a: .long 0
  303. e: .long 0
  304. i: .long 0
  305. o: .long 0
  306. u: .long 0
  307. brojac: .long 0
  308. imaSamoglasnika: .ascii "Unesti string sadrzi samoglasnike.\n\0"
  309. imaSamoglasnika_len= . - imaSamoglasnika
  310. nemaSamoglasnika: .ascii "Unesti string ne sadrzi samoglasnike.\n\0"
  311. nemaSamoglasnika_len= . - nemaSamoglasnika
  312. unos: .fill 40,1,0
  313. unos_len: .long 41
  314. .section .text
  315. .globl main
  316. main:
  317. movl $3, %eax
  318. movl $0, %ebx
  319. movl $unos, %ecx
  320. movl unos_len, %edx
  321. int $0x80
  322.  
  323. movl %eax, unos_len
  324. movl $0, %esi
  325.  
  326. petlja:
  327. cmpl $'\n', unos(,%esi,1)
  328. je string
  329. movb unos(,%esi,1), %al
  330. cmpb $'a' ,%al
  331. je promA
  332. cmpb $'e' ,%al
  333. je promE
  334. cmpb $'i' ,%al
  335. je promI
  336. cmpb $'o' ,%al
  337. je promO
  338. cmpb $'u' ,%al
  339. je promU
  340. incl %esi
  341. jmp petlja
  342.  
  343. promA:
  344. addl $1, a
  345. addl $1, brojac
  346. incl %esi
  347. jmp petlja
  348. promE:
  349. addl $1, e
  350. addl $1, brojac
  351. incl %esi
  352. jmp petlja
  353. promI:
  354. addl $1, i
  355. addl $1, brojac
  356. incl %esi
  357. jmp petlja
  358. promO:
  359. addl $1, o
  360. addl $1, brojac
  361. incl %esi
  362. jmp petlja
  363. promU:
  364. addl $1, u
  365. addl $1, brojac
  366. incl %esi
  367. jmp petlja
  368.  
  369. string:
  370. movl brojac, %edi
  371. cmpl $0, %edi
  372. je ispis2
  373. ispis1:
  374. movl $4, %eax
  375. movl $1, %ebx
  376. movl $imaSamoglasnika, %ecx
  377. movl $imaSamoglasnika_len, %edx
  378. int $0x80
  379. jmp kraj
  380. ispis2:
  381. movl $4, %eax
  382. movl $1, %ebx
  383. movl $nemaSamoglasnika, %ecx
  384. movl $nemaSamoglasnika_len, %edx
  385. int $0x80
  386. kraj:
  387. movl $1, %eax
  388. movl $0, %ebx
  389. int $0x80
  390.  
  391.  
  392. ---------------------------------------------------------------------------------------------------------------
  393.  
  394.  
  395. #naizmenicno velika i mala slova
  396. .section .data
  397. max_duzina = 15
  398. poruka1: .ascii "Unesite string:\0"
  399. poruka1_len= . - poruka1
  400. poruka2: .ascii "\nRezultujuci string:\0"
  401. poruka2_len= . - poruka2
  402. str1: .fill max_duzina, 1, 0
  403. str_len: .long 16
  404. .section .text
  405. .globl main
  406.  
  407. main:
  408. #ispis Unesite string
  409. movl $4, %eax
  410. movl $1, %ebx
  411. movl $poruka1, %ecx
  412. movl $poruka1_len, %edx
  413. int $0x80
  414.  
  415. #trazenje unosa stringa
  416. movl $3, %eax
  417. movl $0, %ebx
  418. movl $str1, %ecx
  419. movl $max_duzina, %edx
  420. int $0x80
  421.  
  422. movl %eax, str_len #duzina stringa u str_len
  423.  
  424. movl str1, %eax #string u eax
  425. movl $0, %esi #esi je indeks clanova niza
  426.  
  427. petlja1:
  428. cmpl $'\n' , str1(,%esi,1) #petlja za neparne karaktere
  429. je ispis
  430. movb str1(,%esi,1), %al
  431. cmpb $97, %al
  432. jb sledeci1
  433. cmpb $122, %al
  434. jbe pretvori1
  435. jmp sledeci1
  436.  
  437. petlja2:
  438. cmpl $'\n' , str1(,%esi,1) #petlja za parne karaktere
  439. je ispis
  440. movb str1(,%esi,1), %al
  441. cmpb $65, %al
  442. jb sledeci2
  443. cmpb $90, %al
  444. jbe pretvori2
  445. jmp sledeci2
  446.  
  447. pretvori1:
  448. subl $32, str1(,%esi,1) #prebaci u veliko slovo (neparni indeksi)
  449. jmp sledeci1
  450. pretvori2:
  451. addl $32, str1(,%esi,1) #prebaci u malo slovo (parni indeksi)
  452. jmp sledeci2
  453. sledeci1:
  454. incl %esi #povecaj indeks i predji na parnu petlju
  455. jmp petlja2
  456. sledeci2:
  457. incl %esi #povecaj indeks i predji na neparnu petlju
  458. jmp petlja1
  459. ispis:
  460. movl $4, %eax #ispis konacnog stringa
  461. movl $1, %ebx
  462. movl $str1, %ecx
  463. movl str_len, %edx
  464. int $0x80
  465. kraj:
  466. movl $1, %eax
  467. movl $0, %ebx
  468. int $0x80
  469.  
  470.  
  471. --------------------------------------------------------------------------------------------------------
  472.  
  473.  
  474. #izbacivanje razmaka
  475. #Srdjan Ilic RA31/2021
  476.  
  477. .section .data
  478. string: .ascii "ana voli milovana\n"
  479. string_len= . - string
  480. .section .text
  481. .globl main
  482.  
  483. main:
  484. movl $0, %esi
  485. petlja:
  486. cmpl $10, string(,%esi,1)
  487. je kraj
  488. movb string(,%esi,1), %al
  489. cmpb $32 , %al
  490. je zameni
  491. incl %esi
  492. jmp petlja
  493. zameni:
  494. movl %esi, %edi
  495. zameni1:
  496. cmpl $10, string(,%edi,1)
  497. je dalje
  498. movb string+1(,%edi,1), %al
  499. movb %al, string(,%edi,1)
  500. incl %edi
  501. jmp zameni1
  502.  
  503. dalje:
  504. jmp petlja
  505.  
  506. kraj:
  507. movl $1, %eax
  508. movl $0, %ebx
  509. int $0x80
  510.  
  511.  
  512. -----------------------------------------------------------------------------------------------------------------
  513.  
  514.  
  515. #fatkorijel broja n
  516. #Srdjan Ilic RA31/2021
  517.  
  518. .section .data
  519. a: .long 50
  520. .section .text
  521. .globl main
  522.  
  523. main:
  524. movl $7, %ebx
  525. movl $0, %ecx
  526. sabiranje:
  527. movl $0, %eax
  528. cmpl %eax, %ebx
  529. je kraj
  530. cmpl %eax, %ebx
  531. ja saberi
  532. cmpl %eax, %ebx
  533. jb kraj
  534. pomnozi:
  535. addl %ebx, %ecx
  536. subl $1, %ebx
  537. jmp sabiranje
  538. saberi:
  539.  
  540. kraj:
  541. movl $1, %eax
  542. movl $0, %ebx
  543. int $0x80
  544.  
  545.  
  546.  
  547. ---------------------------------------------------------------------------------------------------------------
  548.  
  549.  
  550. #autor: Imenko Prezimić INDEX ra1234-2015
  551.  
  552.  
  553. .section .data
  554. bigramLen = 50 #maksimalna duzina izlaza
  555. ispis: .ascii "Unesite rec: \0"
  556. ispis_len=.-ispis
  557. bigramNiz: .fill bigramLen,1,0
  558. razmak: .long 1
  559. unos: .fill 10,1,0
  560. unos_len: .long 11
  561. brojac: .long 0
  562.  
  563. .section .text
  564. .globl main
  565. main:
  566. movl $4, %eax
  567. movl $1, %ebx
  568. movl $ispis, %ecx
  569. movl $ispis_len, %edx
  570. int $0x80
  571.  
  572. movl $3, %eax
  573. movl $0, %ebx
  574. movl $unos, %ecx
  575. movl unos_len, %edx
  576. int $0x80
  577. movl %eax, unos_len
  578.  
  579. movl $0, %esi
  580. movl $0, %edi
  581. movl unos_len, %edx
  582. subl $2, %edx
  583. razmak1:
  584. cmpl $0, razmak
  585. je petlja_0
  586. cmpl $1, razmak
  587. je petlja_1
  588. jmp kraj
  589.  
  590.  
  591. petlja_0:
  592. cmpl %edx , %esi
  593. je ispis1
  594. movb unos(,%esi,1), %al
  595. movb %al, bigramNiz(,%edi,1)
  596. incl %edi
  597.  
  598. movb unos+1(,%esi,1), %al
  599. movb %al, bigramNiz(,%edi,1)
  600. incl %edi
  601. incl %esi
  602. addl $2, brojac
  603. jmp petlja_0
  604.  
  605.  
  606. petlja_1:
  607. cmpl %edx , %esi
  608. je predispis1
  609. movb unos(,%esi,1), %al
  610. movb %al, bigramNiz(,%edi,1)
  611. incl %edi
  612.  
  613. movb unos+1(,%esi,1), %al
  614. movb %al, bigramNiz(,%edi,1)
  615. incl %edi
  616.  
  617. movb $' ' , bigramNiz(,%edi,1)
  618. incl %edi
  619. incl %esi
  620. addl $3, brojac
  621. jmp petlja_1
  622.  
  623.  
  624. predispis1:
  625. decl %edi
  626. decl brojac
  627. movb $0 , bigramNiz(,%edi,1)
  628. ispis1:
  629. movl $4, %eax
  630. movl $1, %ebx
  631. movl $bigramNiz, %ecx
  632. movl brojac, %edx
  633. int $0x80
  634. kraj:
  635. movl $1, %eax
  636. movl $0, %ebx
  637. int $0x80
  638.  
Add Comment
Please, Sign In to add comment