Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Omoguciti unos deljenika i delioca u jednostrukoj preciznosti u hexadecimalnom obliku, i podeliti ta dva broja i ispisati rezultat deljenja, pritom voditi racuna o izlasku van opsega, deljenja sa nulom, pogresnog upisa operanada, ukoliko je doslo do greske , gresku postaviti na 1 i ispisati poruku, prilikom unosa brojeva moze da se upisuje i malim i velikim slovom.
  2. .section .data
  3. string_max = 40
  4. string1: .fill string_max,1,0
  5. string2: .fill string_max,1,0
  6. rezutat: .fill string_max,1,0
  7. .section .text
  8. .globl main
  9. main:
  10. movl $3, %eax
  11. movl $0, %ebx
  12. leal string1, %ecx
  13. movl $string_max, %edx
  14. int $0x80
  15. jmp konverzija1
  16.  
  17. unos_drugog:
  18. movl %eax, %esi
  19. movl $3, %eax
  20. movl $0, %ebx
  21. leal string2, %ecx
  22. movl $string_max, %edx
  23. int $0x80
  24. jmp konverzija2
  25.  
  26. konverzija1:
  27. movl $0, %esp
  28. movl $0, %ecx
  29. movl $0, %esi
  30. leal string1, %ebx
  31. movl $0, %eax
  32. movl $0, %edx
  33. movl $16, %ebp
  34. konverzijastep2:
  35. incl %esp
  36. cmpl $8, %esp
  37. ja greska
  38. cmpl $10, (%ebx)
  39. je unos_drugog
  40. movb (%ebx), %cl
  41. cmpb $'0', %cl
  42. jb greska
  43. cmpb $'9', %cl
  44. jbe broj1
  45. cmpb $'A', %cl
  46. jb greska
  47. cmpb $'F', %cl
  48. jbe slovo1
  49. jmp greska
  50. broj1:
  51. subb $'0', %cl
  52. mull %ebp
  53. addl %ecx, %eax
  54. incl %ebx
  55. jmp konverzijastep2
  56. slovo1:
  57. subb $55, %cl
  58. mull %ebp
  59. addl %ecx, %eax
  60. incl %ebx
  61. jmp konverzijastep2
  62.  
  63. konverzija2:
  64. movl $0, %esp
  65. movl $0, %ecx
  66.  
  67. leal string2, %ebx
  68. movl $0, %eax
  69. movl $0, %edx
  70. movl $16, %ebp
  71. konverzija2step2:
  72. incl %esp
  73. cmpl $8, %esp
  74. ja greska
  75. cmpl $10, (%ebx)
  76. je dijeljenje
  77. movb (%ebx), %cl
  78. cmpb $'0', %cl
  79. jb greska
  80. cmpb $'9', %cl
  81. jbe broj2
  82. cmpb $'A', %cl
  83. jb greska
  84. cmpb $'F', %cl
  85. jbe slovo2
  86. jmp greska
  87. broj2:
  88. subb $'0', %cl
  89. mull %ebp
  90. addl %ecx, %eax
  91. incl %ebx
  92. jmp konverzija2step2
  93. slovo2:
  94. subb $55, %cl
  95.  
  96. mull %ebp
  97. addl %ecx, %eax
  98. incl %ebx
  99. jmp konverzija2step2
  100.  
  101.  
  102. dijeljenje:
  103. movl %eax, %edi
  104. movl %edi, %ecx #drugi broj u ecx
  105. movl %esi, %eax #prvi broj u ebx
  106. cmpl $0, %ecx
  107. je greska
  108. movl $0, %edx
  109. divl %ecx
  110. leal rezutat, %esi
  111.  
  112. kovnver_nazad:
  113. cmpl $0, %eax
  114. je rotiranje
  115. movl $16, %ecx
  116. movl $0, %edx
  117. divl %ecx
  118. cmpl $9, %edx
  119. ja povecaj_za_55
  120. jmp dalje_laki
  121. povecaj_za_55:
  122. addl $55, %edx
  123. jmp dalje_dalje_dalje
  124. dalje_laki:
  125. addl $'0', %edx
  126. dalje_dalje_dalje:
  127. movl %edx, (%esi)
  128. incl %esi
  129. jmp kovnver_nazad
  130. rotiranje:
  131. leal rezutat, %edi
  132. decl %esi
  133. movl %esi, %esp
  134. rotiranje1:
  135. movb (%esi), %ah
  136. movb (%edi), %al
  137. movb %ah, (%edi)
  138. movb %al, (%esi)
  139. incl %edi
  140. decl %esi
  141. cmpl %edi, %esi
  142. jbe ispis
  143. jmp rotiranje1
  144.  
  145.  
  146. ispis:
  147. incl %esp
  148. movl $10, (%esp)
  149. movl $4, %eax
  150. movl $1, %ebx
  151. leal rezutat, %ecx
  152. movl $string_max, %edx
  153. int $0x80
  154.  
  155. greska:
  156. movl $1, %eax
  157. kraj:
  158. movl $1, %eax
  159. int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement