Advertisement
Vladpepe

Untitled

Dec 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. .586
  2. .model flat
  3. .code
  4.  
  5. ;void unsignedToString(char *dst, unsigned u)
  6. ;----------------------------------------------------------
  7. _unsignedToString proc
  8.  
  9. push ebp
  10. mov ebp,esp
  11. push ecx
  12. push ebx
  13. push esi
  14. push edi
  15. push edx
  16.  
  17.  
  18. mov ebx,dword ptr[ebp+12] ; U
  19. mov ecx,dword ptr[ebp+8] ; dst
  20. mov esi,0 ; counter
  21.  
  22. mov eax,ebx
  23. call conta_numeri
  24. mov esi,eax ; quanti numeri
  25. mov edi,esi
  26. mov dword ptr[ecx+esi],0
  27.  
  28. ciclo:
  29. cmp esi,0
  30. je fine
  31. mov eax,ebx
  32. call scomponi
  33. mov byte ptr[ecx+esi-1],al
  34. mov eax,ebx
  35. mov edx,0
  36. mov edi,10
  37. div edi
  38. dec esi
  39. mov ebx,eax
  40. jmp ciclo
  41.  
  42.  
  43. fine:
  44.  
  45.  
  46. pop edx
  47. pop edi
  48. pop esi
  49. pop ebx
  50. pop ecx
  51. mov esp,ebp
  52. pop ebp
  53.  
  54.  
  55. ret
  56. _unsignedToString endp
  57.  
  58. ;----------------------------------------------
  59. conta_numeri proc
  60.  
  61. ;U dentro eax
  62.  
  63. push ebp
  64. mov ebp,esp
  65. push ecx
  66. push ebx
  67. push esi
  68. push edi
  69. push edx
  70.  
  71. mov esi,1
  72. mov ebx,10
  73.  
  74. ciclo:
  75. cmp eax,1
  76. jle fine
  77. inc esi
  78. mov edx,0
  79. div ebx
  80.  
  81. jmp ciclo
  82.  
  83.  
  84.  
  85. fine:
  86. mov eax,esi
  87.  
  88. pop edx
  89. pop edi
  90. pop esi
  91. pop ebx
  92. pop ecx
  93. mov esp,ebp
  94. pop ebp
  95.  
  96.  
  97. ret
  98.  
  99. conta_numeri endp
  100. ;-----------------------------------------------
  101.  
  102. scomponi proc
  103. ;in eax ho il numero
  104. push ebp
  105. mov ebp,esp
  106. push ecx
  107. push ebx
  108. push esi
  109. push edi
  110. push edx
  111.  
  112.  
  113.  
  114. mov ebx,10
  115. mov edx,0
  116. div ebx
  117.  
  118. cmp edx,0
  119. je zero
  120.  
  121. cmp edx,1
  122. je uno
  123.  
  124. cmp edx,2
  125. je due
  126.  
  127. cmp edx,3
  128. je tre
  129.  
  130. cmp edx,4
  131. je quattro
  132.  
  133. cmp edx,5
  134. je cinque
  135.  
  136. cmp edx,6
  137. je sei
  138.  
  139. cmp edx,7
  140. je sette
  141.  
  142. cmp edx,8
  143. je otto
  144.  
  145. cmp edx,9
  146. je nove
  147.  
  148.  
  149.  
  150. zero:
  151. mov al,48
  152. jmp fine
  153.  
  154. uno:
  155. mov al,49
  156. jmp fine
  157.  
  158. due:
  159. mov al,50
  160. jmp fine
  161.  
  162. tre:
  163. mov al,51
  164. jmp fine
  165.  
  166. quattro:
  167. mov al,52
  168. jmp fine
  169.  
  170. cinque:
  171. mov al,53
  172. jmp fine
  173.  
  174. sei:
  175. mov al,54
  176. jmp fine
  177.  
  178. sette:
  179. mov al,55
  180. jmp fine
  181.  
  182. otto:
  183. mov al,56
  184. jmp fine
  185.  
  186. nove:
  187. mov al,57
  188. jmp fine
  189.  
  190. fine:
  191.  
  192.  
  193. pop edx
  194. pop edi
  195. pop esi
  196. pop ebx
  197. pop ecx
  198. mov esp,ebp
  199. pop ebp
  200. ret
  201. scomponi endp
  202. ;--------------------------------------------
  203. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement