pcrel.asm 836 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. bits 32
  2. foo: ; Backwards reference
  3. mov eax,[foo - $]
  4. mov ebx,[ebx + foo - $]
  5. mov ecx,foo - $
  6. mov edx,foo - bar
  7. mov eax,[bar - $]
  8. mov ebx,[ebx + bar - $]
  9. mov ecx,bar - $
  10. mov edx,bar - foo
  11. mov eax,[baz - $]
  12. mov ebx,[ebx + baz - $]
  13. mov esi,[baz - bar]
  14. mov ecx,baz - $
  15. mov edx,baz - bar
  16. bits 64
  17. default rel
  18. times 16 nop
  19. mov eax,[foo]
  20. mov eax,[foo - $]
  21. mov eax,[abs foo - $]
  22. mov ebx,[rbx + foo - $]
  23. mov ecx,foo - $
  24. mov edx,foo - bar
  25. mov eax,[bar]
  26. mov eax,[bar - $]
  27. mov eax,[abs bar - $]
  28. mov ebx,[rbx + bar - $]
  29. mov ecx,bar - $
  30. mov edx,bar - foo
  31. mov eax,[baz]
  32. mov eax,[baz - $]
  33. mov eax,[abs baz - $]
  34. mov ebx,[rbx + baz - $]
  35. mov esi,[baz - bar]
  36. mov esi,[abs baz - bar]
  37. mov ecx,baz - $
  38. mov edx,baz - bar
  39. bar: ; Forwards reference
  40. hlt
  41. section ".data"
  42. baz: ; Other-segment reference
  43. dd 0