Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. SYSCALL32 = 0x80
  2. EXIT = 1
  3. STDIN = 0
  4. READ = 3
  5. BUF_SIZE = 10
  6. HexDistance = 'a' - 10
  7. WRITE = 4
  8. STDOUT = 1
  9. .data
  10. BUF: .space BUF_SIZE, 0
  11. .text
  12. .globl _start
  13. _start:
  14. movl $BUF_SIZE, %edx
  15. movl $BUF, %ecx
  16. movl $STDIN, %ebx
  17. movl $READ, %eax
  18. int $SYSCALL32
  19. movl %eax, %esi
  20. dec %esi
  21. dec %esi
  22. movl $0, %edi
  23. convert:
  24. movb BUF(,%edi,1), %bl
  25. cmpb $'9', %bl
  26. jg subHex
  27. sub $'0',%bl
  28. jmp setValue
  29. subHex:
  30. sub $HexDistance,%bl
  31. setValue:
  32. movb %bl, BUF(,%edi,1)
  33. cmp %eax, %edi
  34. jge setRegister
  35. inc %edi
  36. jmp convert
  37. setRegister:
  38. mov $0,%edi
  39. xor %eax, %eax
  40. setValueInRegister:
  41. movb BUF(,%edi,1), %bl
  42. or %bl,%al
  43. # shl $4, %rax
  44. cmpl %esi, %edi
  45. je koniec
  46. shl $4, %eax
  47. inc %edi
  48. jmp setValueInRegister
  49. koniec:
  50. # shr $4, %rax
  51. movl $EXIT, %eax
  52. int $SYSCALL32
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement