Advertisement
Guest User

Untitled

a guest
Apr 16th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. STDIN = 0
  2. STDOUT = 1
  3. SYSREAD = 3
  4. SYSWRITE = 4
  5. SYSEXIT = 1
  6. BUFLEN = 255
  7. EXIT_SUCCESS = 0
  8. SYSCALL32 = 0x80
  9.  
  10. .align 32
  11.  
  12. .data
  13. BUF: .space BUFLEN, 0
  14.  
  15.  
  16. .text
  17. .globl _start
  18.  
  19.  
  20. _start:
  21.  
  22. read:
  23. movl $SYSREAD, %eax    # wczytuje dane
  24. movl $STDIN, %ebx
  25. movl $BUF, %ecx
  26. movl $BUFLEN, %edx
  27. int $SYSCALL32
  28.  
  29. cmp $0, %eax # zakoncz jesli wczytano 0 bajt
  30. je exit
  31.  
  32. movb $0, %ah # zerowanie dzielnej
  33. movl $0, %edi # to bedzie iterator po bajtach liczby
  34.  
  35. divide:
  36.  
  37. movb BUF(,%edi,1), %al
  38. movb $10, %bl
  39. divb %bl
  40. movb %al,BUF(,%edi,1) # wynik pojedynczego dzielenia do bufora
  41. incl %edi
  42.  
  43.  
  44. cmpl $255, %edi # wykonuje dzielenie po 1 bajcie az do calosci (255)
  45. jl divide
  46.  
  47. write:
  48. movl $SYSWRITE, %eax
  49. movl $STDOUT, %ebx
  50. movl $BUF, %ecx
  51. movl $BUFLEN, %edx
  52. int $SYSCALL32
  53.  
  54.  
  55. exit:
  56. movl $SYSEXIT, %eax
  57. movl $EXIT_SUCCESS, %ebx
  58. int $SYSCALL32
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement