Advertisement
andjela9

Asembler mentor

Mar 14th, 2020
2,908
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #suma prvih n brojeva
  2. .section .data
  3. .section .text
  4. .globl main
  5.  
  6. main:
  7.  
  8. movl $8, %eax
  9. movl $0, %ebx
  10.  
  11. petlja:
  12. cmpl $0, %eax
  13. je kraj
  14. addl %eax, %ebx
  15. decl %eax   #dekrement
  16. jmp petlja
  17.  
  18. kraj:
  19. movl $1, %eax
  20. movl $0, %ebx
  21. int $0x80
  22. --------------------------------------
  23. #poredi vrednost a i b,
  24. .section .data
  25. a: .long 1
  26. b: .long 2
  27. r: .long 0
  28. .section .text
  29. .globl main
  30.  
  31. main:
  32.     movl a, %ecx
  33.     cmpl %ecx, b    #ne moze cmpl a, b
  34.     ja b_vece
  35.     jb a_vece
  36.  
  37. kraj:
  38.  
  39. b_vece:
  40.     movl $2, r
  41.     jmp kraj
  42.  
  43. a_vece:
  44.     movl $1, r
  45.     jmp kraj
  46. ------------------------------------
  47. #da li se a nalazi u intervalu
  48. .section .data
  49. a: .long 49
  50. .section .text
  51. .globl main
  52.  
  53. main:
  54.     cmpl $48, a
  55.     jb nije     #ako je a manje onda nije u int
  56.     cmpl $57, a
  57.     ja nije
  58.  
  59. kraj:
  60. movl $1, %eax
  61. movl $0, %ebx
  62. int $0x80
  63.  
  64. nije:
  65.     #ovde zavisi sta kaze u zadatku
  66. ------------------------------------------------
  67. #da li se nalazi u neka od 2 int
  68. .section .data
  69. a: .long 49
  70. .section .text
  71. .globl main
  72.  
  73. main:
  74. #provera za prvi interval
  75.     cmpl $65, a
  76.     jb ne_valja
  77.     cmpl $90, a
  78.     jb valja
  79.  
  80.     cmpl $97, a
  81.     jb ne_valja
  82.     cmpl $122, a
  83.     jb valja
  84.     j
  85.  
  86.  
  87. ne_valja:
  88.  
  89. valja:
  90.  
  91. kraj:
  92. ---------------------------------------------------
  93. #poredjenje 2 broja u dvostrukoj preciznosti
  94. #porede se visi delovi, ako su jednaki onda nizi
  95. .section .data
  96. a: .quad 0x12341234
  97. b: .quad 0x89765431
  98. .section .text
  99. .globl main
  100.  
  101. main:
  102.     movl a+4, %eax
  103.     movl
  104.     movl b+4, %ebx  #ovo su visi delovi
  105.     cmpl %eax,
  106.  
  107.     ...
  108. ---------------------------------------------------
  109. #nalazenje minimuma i maksimuma niza
  110. .section .data
  111. min: .long 0
  112. max: .long 0
  113. niz: .long 1,2,3,4,5,6,7
  114.  
  115. .section .text
  116. .globl main
  117.     movl $niz, %esi     #esi i edi za nizove ali ne mora, moze i eax...
  118. #kada se stavi niz u registar to je kao da se stavi prvi el niza ili pokazivac na niz
  119.     movl (%esi), %eax   #min, vrednost onoga na prvoj adresi u nizu je sad u eax
  120. #adresa prom sa dolar ispred prom
  121.     movl (%esi), %ebx   #max
  122.  
  123. petlja:
  124.     cmpl $niz+6*4, %esi #adresa pocetnog plus narednih 6
  125.     je kraj
  126.     cmpl (%esi), %eax
  127.     ja promenimin   #ako je trenutni manji od min promeni min
  128.    
  129.     cmpl (%esi), %ebx
  130.     jb promenimax
  131.  
  132. dalje:
  133.     incl %esi   #svaki put kad dodajes 1 on se pomeri za 4
  134.     jmp petlja
  135. #kad se pristupa sl el niza poveca se za 1, on se u memoriji poveca 4
  136.  
  137. promenimin:
  138.     movl (%esi), %eax
  139.     jmp dalje
  140.  
  141. promenimax:
  142.     movl (%esi), %ebx
  143.     jmp dalje
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement