reldef.asm 747 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. bits 64
  2. default rel
  3. %if 1
  4. extern bar
  5. %else
  6. section .bss
  7. bar: resd 0
  8. %endif
  9. global start
  10. global foo
  11. section .rodata
  12. rod1: dd 0x01234567
  13. rod2: dd 0x89abcdef
  14. section .text
  15. start:
  16. call .next
  17. .next: pop rsi
  18. sub rsi,.next-$$
  19. lea rax, [rod1]
  20. lea rcx, [rod2]
  21. lea rdx, [bar]
  22. lea rbx, [foo]
  23. lea rax, [rdi+rod1-$$]
  24. lea rcx, [rdi+rod2-$$]
  25. lea rdx, [rdi+bar-$$]
  26. lea rbx, [rdi+foo-$$]
  27. mov rax, [rdi+rod1-$$]
  28. mov rcx, [rdi+rod2-$$]
  29. mov rdx, [rdi+bar-$$]
  30. mov rbx, [rdi+foo-$$]
  31. mov rax, dword rod1-$$
  32. mov rcx, dword rod2-$$
  33. mov rdx, dword bar-$$
  34. mov rbx, dword foo-$$
  35. section .data
  36. dq rod1
  37. dq rod2
  38. dq bar
  39. dq foo
  40. foo:
  41. dd rod1 - $
  42. dd rod1 - $$
  43. dd rod2 - $
  44. dd rod2 - $$
  45. dd bar - $
  46. dd bar - $$
  47. dd foo - $
  48. dd foo - $$