Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .686
  2. .model flat
  3.  
  4. extern _ExitProcess@4 : PROC
  5. extern __write : PROC
  6. public _main
  7.  
  8. .data
  9. cyfry db '1', '8','9','2',0
  10. cyfry2 db '1',0
  11. cyfry3 db '1','2',0
  12. ;możecie sobie popróbować, czy dla każdego przypadku działa xd
  13. przepis db 8 dup (?),0 ;przykładowo tutaj 8 bajtów, byle >=cyfry
  14.  
  15. .code:
  16. _main PROC
  17.  
  18.     mov esi, OFFSET cyfry2
  19.     mov edi, OFFSET przepis
  20.  
  21.     cmp [esi+1], 0
  22.     je jedna_cyfra
  23.     cmp [esi+2], 0
  24.     je near dwie_cyfry
  25. wiecej_cyfr:
  26.     cmp [esi+3], 0
  27.     je dopisz_kropke
  28.     mov eax, [esi]
  29.     mov [edi], eax
  30.     inc edi
  31.     inc esi
  32.     jmp near wiecej_cyfr
  33. dopisz_kropke:
  34.     mov eax, [esi]
  35.     mov [edi], eax
  36.     mov [edi+1], byte PTR '.'
  37.     mov eax, [esi+1]
  38.     mov [edi+2], eax
  39.     mov eax, [esi+2]
  40.     mov [edi+3], eax
  41.     jmp near koniec
  42. jedna_cyfra:
  43.     mov [edi], byte PTR '0'
  44.     mov [edi+1], byte PTR '.'
  45.     mov [edi+2], byte PTR '0'
  46.     mov eax, [esi]
  47.     mov [edi+3], eax
  48.     jmp near koniec
  49. dwie_cyfry:
  50.     mov [edi], byte PTR '0'
  51.     mov [edi+1], byte PTR '.'
  52.     mov eax, [esi]
  53.     mov [edi+2], eax
  54.     mov eax, [esi+1]
  55.     mov [edi+3], eax
  56.     jmp near koniec
  57. koniec:
  58.  
  59.     push 4
  60.     push OFFSET przepis
  61.     call __write
  62.     add esp, 12
  63.  
  64.     push 0
  65.     call _ExitProcess@4
  66. _main ENDP
  67. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement