Advertisement
nirn

Untitled

Mar 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. .code32
  2. SYSEXIT = 1
  3. EXIT_SUCCESS = 0
  4. SYSWRITE = 4
  5. STDOUT = 1
  6. .data
  7. msg: .ascii "Hello world"
  8. msg_len = . - msg
  9.  
  10. .text
  11.  
  12.  
  13. .global _start
  14. _start:
  15. xor %edx, %edx // Zerowanie edx do dzielenia
  16. mov $msg_len, %eax // dlugosc msg do eax
  17. movl $0x2, %ecx // dzielimy przez 2 -> do ecx
  18. divl %ecx // dzielimy przez ecx (eax:ecx)
  19. xor %edx, %edx // zerujemy edx bedzie inkrementowany w petli
  20.  
  21. mov $msg_len, %ebx
  22. decl %ebx
  23. LOOP:
  24. movb msg(,%edx,1), %cl // msg[edx] do CL tymczasowo przechowuje
  25. movb msg(,%ebx,1), %ch //ebx = msg_len - edx - 1
  26. movb %ch, msg(,%edx,1) //CH do msg[edx]
  27. movb %cl, msg(,%ebx,1) //CL do msg[ebx]
  28. incl %edx // inkrementujemy edx
  29. decl %ebx
  30. cmp %edx, %eax
  31. jne LOOP //sprawdzamy czy koniec wykonywania petli
  32.  
  33.  
  34. mov $SYSWRITE, %eax
  35. mov $STDOUT, %ebx
  36. mov $msg, %ecx
  37. mov $msg_len, %edx
  38. int $0x80
  39. mov $SYSEXIT, %eax
  40. mov $EXIT_SUCCESS, %ebx
  41. int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement